一、原理(四大要點)
(1)保證元數據一致(edits)
namenode (fsimage edits)
a、NFS
b、journalnode
c、zk
(2)只有一臺namenode對外提供服務(proxy)
(3)接受datanode的心跳
(4)隔離
二、HDFS HA啓動並測試
主機名 |
ip |
配置 |
服務 |
Bigdata01.xxx.com |
192.168.249.130 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode DFSZKFailoverController NameNode JournalNode |
Bigdata02.xxx.com |
192.168.249.131 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode DFSZKFailoverController NameNode JournalNode |
Bigdata03.xxx.com |
192.168.249.132 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode JournalNode |
在Bigdata01.xxxx.com中配置:
Core-site.xml
hdfs-site.xml
把hadoop分別拷貝到bigdata02與bigdata03
按照以下步驟啓動
啓動服務
Step1 :啓動Zookeeper 集羣 bin/zkServer.sh start
在各個JournalNode節點上,輸入以下命令啓動journalnode服務:
$ sbin/hadoop-daemon.sh start journalnode
Step2:在[nn1]上,對其進行格式化,並啓動:
$ bin/hdfs namenode –format
初始化 HA 在Zookeeper中狀態 bin/hdfs zkfc -formatZK
$ sbin/hadoop-daemon.sh start namenode
在各個NameNode節點上啓動DFSZK Failover Controller,先在那臺機器啓動,那個機器的NameNode就是Active NameNode
sbin/hadoop-daemin.sh start zkfc
Step3:在[nn2]上,同步nn1的元數據信息:
$ bin/hdfs namenode -bootstrapStandby
Step4:啓動[nn2]:
$ sbin/hadoop-daemon.sh start namenode
Step6:在[nn1]上,啓動所有datanode
$ sbin/hadoop-daemons.sh start datanode
Bigdata01
Bigdata02變爲active
三臺機器yarn-site.xml分配進行配置
進行yarn啓動,並查看yarn的狀態
Kill 掉rm1後
Rm2狀態變爲active
重啓rm1後狀態變爲standy
主機名 |
ip |
配置 |
服務 |
Bigdata01.xxxx.com |
192.168.249.130 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode DFSZKFailoverController NameNode JournalNode |
Bigdata02.xxxx.com |
192.168.249.131 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode DFSZKFailoverController NameNode JournalNode |
Bigdata03.xxxx.com |
192.168.249.132 |
內存1g Cpu 1核 硬盤 10g |
QuorumPeerMain DataNode JournalNode |
在Bigdata01.ibeifeng.com中配置: