经过上次介绍:Centos6.5编译Hadoop2.5.2-64位那么现在Hadoop2.5.2 64位的安装包已经编译成功,那么现在只需要下载一个zookeeper就可以搭建Hadoop2.x的高可用集群,解决了Hadoop1.x的一些不足之处。首先将Hadoop2.5.2和zookeeper-3.4.6,通过XFTP上传到其中一台虚拟机上,然后用scp命令分别传到其他虚拟机,搭建集群的最小数量建议是4台,每个虚拟机的内存不要低于1G,建议每个虚拟机2G内存。 NNDNZKZKFCJNRMNM(任务管理)code1YYYcode2YYYYYYYcode3YYYYcode4YYY上表是本次搭建集群的方案。OK,那么更加以上方案开始搭建高可用集群。首先分别解压四个虚拟机的Hadoop2.5.2.tar.gz和zookeeper-3.4.6.tar.gz,选择其中一个虚拟机开始配置:首先修改Hadoop2.5.2的配置文件 hadoop2.5.2/etc/hadoop/下面的core-site.xmlhadoop-env.shhdfs-site.xmlmapred-site.xmlyarn-site.xmlslaves该配置下需要修改上面列出的6个配置文件,内容如下(官方文档也有):core-site.xml:
fs.defaultFS
hdfs://codelee
ha.zookeeper.quorum
code1:2181,code2:2181,code3:2181
hadoop.tmp.dir
/opt/hadoop
hadoop-env.sh:# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.7.0_79hdfs-site.xml:
dfs.nameservices
codelee
dfs.ha.namenodes.codelee
nn1,nn2
dfs.namenode.rpc-address.codelee.nn1
code1:8020
dfs.namenode.rpc-address.codelee.nn2
code2:8020
dfs.namenode.http-address.codelee.nn1
code1:50070
dfs.namenode.http-address.codelee.nn2
code2:50070
dfs.namenode.shared.edits.dir
qjournal://code2:8485;code3:8485;code4:8485/codelee
dfs.client.failover.proxy.provider.codelee
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_dsa
dfs.journalnode.edits.dir
/opt/hadoop/data
dfs.ha.automatic-failover.enabled
true
mapred-site.xml:
mapreduce.framework.name
yarn
yarn-site.xml:
yarn.resourcemanager.hostname
code1
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
slavescode2
code3
code4OK,到这里Hadoop的配置已经完毕,那么再来配置zookeeper的配置。进入/root/zookeeper-3.4.6/conf 将zoo开头的配置文件改名为zoo.cfg,修改如下配置的地方:# example sakes.
dataDir=/opt/zookeeper在行末添加如下配置:server.1=code1:2888:3888
server.2=code2:2888:3888
server.3=code3:2888:3888保存退出。那么现在已经将所有的配置文件配置完毕,用scp命令分别发个其他虚拟机。在code1、code2、code3的/opt目录下新建zookeeper目录,进入目录后vi myid 创建一个名为myid的文件。输入对应的数值保存并退出。例如:code1的虚拟机,那么myid的内容就是1,code2的虚拟机,myid的内容是2到现在就可以进行集群的设置了!步骤如下:启动三个zookeeper, 命令: ./zkServer.sh start启动三个journalnode , 命令./hadoop-daemon.sh start journalnode在其中一个namenode格式化 ./hdfs namenode -format启动已经格式化的namenode ./hadoop-daemon.sh start namenode在没有格式化的namenode上执行:./hdfs namenode -bootstrapStandby,完成后启动在其中一个namenode上初始化zkfc,执行:./hdfs zkfc -formatZK全名停止以上的所有节点:./stop-hdfs.sh启动所有集群:./start-all.sh。搭建Hadoop高可用集群注意事项:每个虚拟机的时间尽量保持一致每个虚拟主机都配置hosts,并且内容一致每个虚拟主机都配置对应的环境变量配置集群时一定要关闭防火墙那么Hadoop的高可用集群搭建好了,赶紧写个WordCount跑跑吧!未经允许不得转载:李阳博客»如何搭建一个高可用的Hadoop集群