现在的位置: 首页 > 综合 > 正文

Hadoop虚拟集群的搭建

2018年11月03日 ⁄ 综合 ⁄ 共 4391字 ⁄ 字号 评论关闭
主要参考:
1. http://blog.csdn.net/bluetropic/article/details/9335675
2. http://blog.csdn.net/hguisu/article/details/7237395
一、环境介绍:2个节点的虚拟机VMware,Ubuntu12.04
二、修改机器名
sudo vi /etc/hostname
节点1设置为:VM-BBI-N1
节点2设置为:VM-BBI-N2
注:Hadoop集群配置中将设置VM-BBI-N1为master,VM-BBI-N2为slave
三、域名和ip配置
sudo vi /etc/hosts
节点1和2均设置为:
172.29.4.165    VM-BBI-N1.IRRI.CGIARAD.ORG VM-BBI-N1
172.29.4.166    VM-BBI-N2.IRRI.CGIARAD.ORG VM-BBI-N2
四、创建用户、分配权限(节点1和节点2上相同)
1)创建hadoop用户组:sudo addgroup hadoop
2)创建用户hadoop:sudo adduser -ingroup hadoop hadoop
3)给hadoop用户添加权限:sudo vi /etc/sudoers
在文件最后添加一行:hadoop  ALL=(ALL:ALL) ALL
五、安装ssh服务(节点1和节点2上相同)
sudo apt-get install openssh-server
六、建立ssh无密码登录环境(节点1和节点2上相同)
首先转换为hadoop用户:su hadoop
切换目录:cd /home/hadoop
1)ssh生成密钥(rsa方式):ssh-keygen -t rsa -P ""
回车后会在目录.ssh下生成两个文件:id_rsa和id_rsa.pub (注:这两个文件是成对出现的)
2)切换到.ssh目录下,然后将id_rsa.pub复制到authorized_keys授权文件中:
cd .ssh
cp id_rsa.pub authorized_keys
3)修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys  (注:去掉该行前面的注释)
重启SSH服务:sudo restart ssh
4)验证是否成功:ssh localhost
如果无错误提示,本地无密码登录就配置成功。
七、配置集群无密码登录
首先配置slave节点无密码访问master。
1)在VM-BBI-N2上,远程复制文件"id_rsa.pub"到主机VM-BBI-N1的用户hadoop的"/home/hadoop/":
scp ~/.ssh/id_rsa.pub hadoop@VM-BBI-N1:~/
因为还没有建立起无密码连接,所以在连接时,要输入VM-BBI-N1服务器用户hadoop的密码。(注:登录VM-BBI-N1查看"/home/hadoop/"下是否存在这个文件)
2)在VM-BBI-N1上,把刚复制过来的VM-BBI-N2的公钥追加到VM-BBI-N1的授权文件"authorized_keys"中去。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
修改"authorized_keys"文件权限:chmod 600 ~/.ssh/authorized_keys
删除"/home/hadoop/"目录下的"id_rsa.pub"文件:rm –r ~/id_rsa.pub
3)如果集群中有更多的slave节点,对他们重复步骤(1)-(2)对剩余的slave服务器进行配置。
完成"配置Slave无密码登录Master".
4)在VM-BBI-N1上,输入命令:scp ~/.ssh/authorized_keys hadoop@VM-BBI-N2:~/.ssh/
如果集群中有更多的slave节点,分别修改以上命令中的VM-BBI-N2为剩余的slave服务器,将复制master节点的authorized_keys到所有slave节点的.ssh目录。
5)在VM-BBI-N1上,登录其余各个节点:ssh VM-BBI-N2
6)在VM-BBI-N2上,登录其余各个节点:ssh VM-BBI-N1
八、配置JAVA环境(节点1和节点2上相同)
1)安装JAVA:sudo apt-get install openjdk-7-jdk
2)配置环境变量:sudo vi /etc/profile
在文件最后添加:
# set java environment
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/
保存并退出,使其配置立即生效:source /etc/profile
3)判断是否成功:java –version
九、安装hadoop(节点1和节点2上相同)
1)下载hadoop1.1.2安装包,复制到usr目录:sudo cp ~/hadoop-1.1.2.tar.gz  /usr
2)切换目录:cd /usr
3)解压缩安装包:sudo tar -zxvf hadoop-1.1.2.tar.gz
4)修改文件名:sudo mv hadoop-1.1.2 hadoop
5)修改hadoop目录权限:sudo chown -R hadoop:hadoop hadoop
                     sudo chmod -R 777 hadoop 
6)删除安装包:sudo rm -rf hadoop-1.1.2.tar.gz
7)切换到hadoop目录下的conf目录:cd  /usr/hadoop/conf
8)编辑hadoop-env.sh:sudo vi hadoop-env.sh
配置JAVA_HOME为前面配置的JAVA_HOME。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
让环境变量配置生效: source conf/hadoop-env.sh   
9)编辑core-site.xml:sudo vi core-site.xml
在<configuration>标签内,添加配置信息如下:
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/hdfs/tmp</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://vm-bbi-n1:49000</value>
</property>
注1:在所有节点的/home/hadoop目录下,建立目录hdfs:sudo mkdir hdfs
    修改权限:sudo chown -R hadoop:hadoop hdfs
注2:如果需要重新格式化分布式文件系统(即执行十 (1)操作),必须先将原有hdfs目录下的所有文件夹(data,name,tmp和local,见后续hdfs-site.xml和mapred-site.xml中的设置)删除。
注3:设置端口之前,先查看端口49000是否被占用:netstat -tuln | grep 49000
    如无显示信息则表示端口未被占用。
    后面的设置中端口号(49001,50031,50032,50033)都需要先查看是否被占用
10)修改hdfs-site.xml:sudo vi hdfs-site.xml
在<configuration>标签内,添加配置信息如下:
<property>
  <name>dfs.safemode.threshold.pct</name>
  <value>0</value>
</property>
<property>
  <name>dfs.http.address</name>
  <value>vm-bbi-n1:50031</value>
</property>
<property>
  <name>dfs.secondary.http.address</name>
  <value>vm-bbi-n1:50033</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.name.dir</name>
  <value>/home/hadoop/hdfs/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hadoop/hdfs/data</value>
</property>
11)在mapred-site.xml中添加内容:
<property>
  <name>mapred.job.tracker</name>
  <value>vm-bbi-n1:49001</value>
</property>
<property>
  <name>mapred.job.tracker.http.address</name>
  <value>vm-bbi-n1:50032</value>
</property>
<property>
  <name>mapred.local.dir</name>
  <value>/home/hadoop/hdfs/local</value>
</property>
12)修改masters:
vm-bbi-n1
13)修改slaves:
vm-bbi-n2
重复上述步骤,为其他节点做相同的配置。
或
14)使用scp远程复制主机(master)hadoop目录下的所有文件到其他节点:
在VM-BBI-N1上,sudo scp -r /usr/hadoop hadoop@vm-bbi-n2:/usr
在VM-BBI-N2上(/usr目录下),修改hadoop目录权限:sudo chown -R hadoop:hadoop hadoop
十、启动hadoop
1)在VM-BBI-N1主机上的hadoop安装目录下,执行格式化:bin/hadoop namenode -format
2)启动服务:bin/start-all.sh
3)到各个节点上使用jps查看进程启动情况。
在master上的结果:Jps、SecondaryNameNode、NameNode和JobTracker四个服务
在slave上的结果:TaskTracker、DataNode和Jps三个服务

抱歉!评论已关闭.