在参考下面文章搭建过hadoop1.x之hdfs后,能够参考本文直接接着搭建node
http://www.javashuo.com/article/p-dlfyylea-mk.htmlbootstrap
若是没有参考过能够选择性的参考下面的说明,或者找其它文档搭建。浏览器
若是你的主机上没有搭建好zookeeper服务,请参考下面的文章完成zookeeper集群搭建oop
http://www.javashuo.com/article/p-gawxxoqx-ms.html.net
1. 首先改变一些上次简单搭建好hdfs的一些东西。orm
a. 删除配置文件中的masters,由于HadoopHA 不须要secondaryNameNode了,因此须要删除上次配置的这个目录。xml
b. 删除上次搭建的非高可用的hadoop的namenode的工做的目录,(个人是/opt/hadoop-2.5/),由于后面要从新格式化。blog
c. 修改配置文件hadoop
vi core-site.xml(第一个配置项的值中的"laoniu"是自定义的,它是一个命名空间,表明你当前配置的这个hdfs系统,这个自定义的字段后面会用到!)文档
vi hdfs-site.xml(注意上面说过的那个命名空间的字段,下面的配置中要对应一致)
配置项的详细说明,能够参考下面链接中的:
Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)
http://eksliang.iteye.com/blog/2226986
2. 复制配置文件到其它node上(能够彻底复制目录或者只复制etc/hadoop目录 覆盖其它机器上)
scp -r xxxx root@node2:xxxx (注意这个命令的格式)
3. 启动zookeeper集群:./zkServer.sh start
(启动成功请参考 https://my.oschina.net/u/3696405/blog/1542535 笔记的说明,或者使用zkServer.sh status命令)
4. 启动三个JournalNode,命令:HADOOP_HOME/bin/hadoop-daemon.sh start journalnode ,在每一个JounrnalNode节点都启动一下,也就是hdfs-site.xml中配置的这三台。
(jps验证,查看log验证启动成功与否。)
5. 在其中一个namenode上格式化:hdfs namenode -format
6. 把刚刚格式化以后的元数据拷贝到另一个namenode上(经过下面两步完成)
a) 启动刚刚格式化的namenode hadoop-daemon.sh start namenode
b) 在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby
(b的图丢了)
7. 启动第二个namenode hadoop-daemon.sh start namenode
8. 在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
9. 中止上面节点:stop-dfs.sh
10 .全面启动:start-dfs.sh
11. 验证nameNode,在浏览器中输入nameNode的主机加端口。
node1:50070 ,注意他是一个active节点,也就是正在服务的nameNode
node2:50070,注意他是一个备用节点,standby,当active节点down掉,这个节点就接管了。
12. 停掉active的nadeNodedown(图中有命令),查看另外一台是否接手,(注意:两台nameNode必须能够相互免密码登录,否则会失败的,这儿我曾经遇到的坑)
此时node2就成了active节点了
再次启动node1(上面被停掉的namenode),此时这个nameNode就成了standby节点了
OK,到此HadoopHA高可用搭建成功,可是注意这个里面还没搭建Yarn呢,且看下篇文章
附加:正常中止的显示:
注意:根据据上边关机的显示,能够一次发现个人配置,nameNode分别是node1和node1,dataNode:node2,node3,node4,JouralNode是node3,node4,node5,zkfc:node1,node2(这个必须和nameNode对应,并且是一一对应的)