一、原理(四大要点)
(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中配置: