版本v0.1 摘要系统安装 环境说明 用户管理 ssh服务端与客户端设置 安装jdk 安装hadoop 运行测试 系统安装使用一台电脑,在该电脑上安装ubuntu虚拟机,使用两台虚拟机连成一个集群(可以根据需要另外扩展)。具体配置如下: 1、宿主机: 硬件:(1)cpu:4核4线程 intel i5-2400 3.10Ghz (2)内存:4G 软件:(1)32位XP系统 最大内存识别为3G。 (2)vmware-workstation-9.0.1-894247 2、虚拟机: 硬件:(1)cpu:每个虚拟机分配2个核心1个线程 (2)内存:每个虚拟机 512M (3)磁盘空间:每个虚拟机分配40G的磁盘空间。 软件:(1)ubuntu-12.04版本 (2)jdk版本:jdk-6u31-linux-i586.bin (3):hadoop版本:hadoop-0.20.203 分区方案按照默认模式下的分区: 可以使用df –l –h命令来查看当前磁盘。 使用Ubuntu Server安装过程还是比较简单的,就是要注意在进行系统分区的时候选择是否对磁盘进行划分。对于双硬盘的电脑可以尝试使用软件raid。 安装过程中注意选中ssh服务,采用NAT来连接宿主机的网络。 环境说明集群中包括2个节点:1个Master,1个Salve,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:
以上两个节点上均是ubuntu系统,并且有一个相同的用户hadoop。Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行; Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master机器,另外准备再加上两台slave机器。
用户管理一.如果已有用户xxx,需要新建一个用户hadoop,则可以按照以下操作: 1. 在xxx用户下运行命令groups查看当前用户所属组,并记录下来 2. 创建hadoop用户组 sudo addgroup hadoop 3. 创建hadoop用户 sudo adduser -ingroup hadoop hadoop 4. 给hadoop用户添加权限,打开/etc/sudoers文件:sudo gedit /etc/sudoers 然后再sudoers中给hadoop用户赋予root用户同样的权限: 在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL 保存即可。 二.修改机器名: 每当ubuntu安装成功时,我们的机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。 1. 打开/etc/hostname文件; sudo gedit /etc/hostname 2. 将/etc/hostname文件中的ubuntu改为你想取的机器名。这里取master,slave。 重启系统后才会生效。 三.修改hosts文件(重要) "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。 我们要测试两台机器之间知否连通,一般用"ping 机器的IP",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。 在master跟slave主机中打开/etc/hosts文件,sudo nano /etc/hosts。在文件中加入以下内容: 192.168.235 .129 Master 192.168.235.131 Slave1 Ip地址可用ifconfig指令来查看。 配置SSH如果之前没有选择安装SSH服务,则可以使用apt-get install openssh-server来安装。 修改ssh的配置文件,vi /etc/ssh/sshd_config,取消AuthorizedKeysFile %h/.ssh/authorized_keys的注释,然后将key文件放在当前用户主目录的.ssh/authorized_keys文件中。 一般是把自己的公钥放到这个文件中。但是如果客户端是windows的话,会遇到一个问题,windows下生成的密钥和linux下生成的不一样,所以,需要在linux下生成公私钥,然后将私钥拷贝到客户机,并删除服务器上的私钥,利用putty的puttygen.exe导入后重新转换才能使用。具体步骤如下: 1. 在master机器上生成密钥对: 首先进入到hadoop用户,执行 ssh-keygen –t rsa –P '' 来生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对: id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下 2、 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的: cd ~/.ssh cat id_rsa.pub >> authorized_keys 3、修改文件"authorized_keys"权限: chmod 600 ~/.ssh/authorized_keys 4、设置ssh配置: 用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容 RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同) 设置完之后重启SSH服务,才能使刚才设置有效。 service sshd restart 退出root登录,使用hadoop普通用户验证是否成功。 ssh localhost 5、把公钥复制到slave机器上 (1)、把Master上的公钥复制到Slave上 scp ~/.ssh/id_rsa.pub hadoop@192.168.235.131:~/ (2)、在"/home/hadoop/"下创建".ssh"文件夹,并赋予权限 mkdir ~/.ssh chmod 700 ~/.ssh (3)、追加到授权文件"authorized_keys" cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys (4)、用root用户修改"/etc/ssh/sshd_config" 具体步骤参考前面Master的"设置SSH配置",具体分为两步:第1是修改配置文件;第2是重启SSH服务 6、登陆:ssh 远程服务器IP(第一次可能需要输入密码,以后就不需要了) 安装jdklinux下的java有两种一个是openjdk一个sun的。因为一些原因,Sun Java 无法从 Ubuntu 的软件库里面取得取而代之的是 OpenJDK,不过 OpenJDK 跑某些程式会出现问题所以还是需要 Sun Java 。 安装过程: 1)首先删除掉已经安装的openjdk sudo apt-get purge openjdk* 2)sudo add-apt-repository "deb http://archive./ubuntu maverick partner" 3)sudo apt-get install python-software-properties 4)sudo apt-get update 5)sudo apt-get install sun-java* 6)sudo apt-get install openjdk-6-jdk openjdk-6-jdk gcj-4.6-jdk ecj default-jdk 7)配置JAVA环境变量: sudo gedit /etc/environment JAVA_HOME=/usr/lib/jvm/java-6-sun 8)java -version查看不出错说明,成功
安装hadoop所有的机器上都要安装hadoop,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置hadoop需要以"root"的身份进行。 我们采用的hadoop版本是:hadoop-0.20.203。因为该版本比较稳定。最新的alpha版本已经很高,但是还是建议采用稳定的版本。我是在apache站点直接下载的 (http://www./dyn/closer.cgi/hadoop/common/)。 1. 假设hadoop-0.20.203.tar.gz在桌面,将它复制到安装目录 /usr/local/下 Sudo cp hadoop-0.20.203.0rc1.tar.gz /usr/local/ 2. 解压hadoop-0.20.203.tar.gz cd /usr/local sudo tar -zxf hadoop-0.20.203.0rc1.tar.gz 3. 将解压出的文件夹改名为hadoop; sudo mv hadoop-0.20.203.0 hadoop 4. 将该hadoop文件夹的属主用户设为hadoop, sudo chown -R hadoop:hadoop hadoop 5. 打开hadoop/conf/hadoop-env.sh文件; sudo gedit hadoop/conf/hadoop-env.sh 6. 配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径) export JAVA_HOME=/usr/lib/jvm/java-6-openjdk 7. 打开conf/core-site.xml文件; sudo gedit hadoop/conf/core-site.xml 编辑如下:property后面需要手工敲 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> 8. 打开conf/mapred-site.xml文件; sudo gedit hadoop/conf/mapred-site.xml 编辑如下property后面需要手工敲: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. -->
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> 9. 打开conf/hdfs-site.xml文件; sudo gedit hadoop/conf/hdfs-site.xml 编辑如下: <configuration> <property> <name>dfs.name.dir</name> <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value> </property> <property> <name>dfs.da <value>/usr/local/hadoop/da </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration> 10.配置master文件 sudo gedit hadoop/conf/masters 修改为master的ip地址192.168.235.129 11.配置slave文件(master特有) sudo gedit hadoop/conf/slaves 去掉"localhost",加入集群中所有Slave机器的IP,每行一个。 至此配置完成。 hadoop的运行调试1.格式化HDFS文件系统 在"Master. "上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh) hadoop namenode –format 2、启动hadoop 在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭 service iptables stop 使用下面命令启动。 start-all.sh 3、检测hadoop是否启动成功 Jps hadoop dfsadmin -report用这个命令可以查看Hadoop集群的状态。 4、网页查看集群 1)访问"http:192.168.235.129:50030" 2)访问"http:192.168.235.129:50070" |
|