前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制
1.1. HA的运作机制(1)hadoop-HA集群运作机制介绍
所谓HA,即高可用(7*24小时不中断服务)
实现高可用最关键的是消除单点故障
hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA
(2)HDFS的HA机制详解
通过双namenode消除单点故障
双namenode协调工作的要点:
A、元数据管理方式需要改变:
内存中各自保存一份元数据
Edits日志只能有一份,只有Active状态的namenode节点可以做写操作
两个namenode都可以读取edits
共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现)
B、需要一个状态管理功能模块
实现了一个zkfailover,常驻在每一个namenode所在的节点
每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识
当需要进行状态切换时,由zkfailover来负责切换
切换时需要防止brain split现象的发生
1.2. HDFS-HA图解
2. 主机规划主机名称
外网IP
内网IP
操作系统
备注
安装软件
运行进程
mini01
10.0.0.111
172.16.1.111
CentOS 7.4
ssh port:22
jdk、hadoop
NameNode、DFSZKFailoverController(zkfc)
mini02
10.0.0.112
172.16.1.112
CentOS 7.4
ssh port:22
jdk、hadoop
NameNode、DFSZKFailoverController(zkfc)
mini03
10.0.0.113
172.16.1.113
CentOS 7.4
ssh port:22
jdk、hadoop、zookeeper
ResourceManager
mini04
10.0.0.114
172.16.1.114
CentOS 7.4
ssh port:22
jdk、hadoop、zookeeper
ResourceManager
mini05
10.0.0.115
172.16.1.115
CentOS 7.4
ssh port:22
jdk、hadoop、zookeeper
DataNode、NodeManager、JournalNode、QuorumPeerMain
mini06
10.0.0.116
172.16.1.116
CentOS 7.4
ssh port:22
jdk、hadoop、zookeeper
DataNode、NodeManager、JournalNode、QuorumPeerMain
mini07
10.0.0.117
172.16.1.117
CentOS 7.4
ssh port:22
jdk、hadoop、zookeeper
DataNode、NodeManager、JournalNode、QuorumPeerMain
注意:针对HA模式,就不需要SecondaryNameNode了,因为STANDBY状态的namenode会负责做checkpoint
Linux添加hosts信息,保证每台都可以相互ping通
[root@mini01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.111 mini01
10.0.0.112 mini02
10.0.0.113 mini03
10.0.0.114 mini04
10.0.0.115 mini05
10.0.0.116 mini06
10.0.0.117 mini07
Windows的hosts文件修改