在參考下面文章搭建過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對應,並且是一一對應的)