一幅图瞬间明白:什么是HA方案
本人试验环境:两台虚拟机
系统部署如下:
NameNode-active + DataNode + ZK +QJM +Client + RM +DM
NameNode-standby + DataNode + ZK +QJM +Client +DM
HA效果:当活动主节点进程(NameNode-active,又成主Namenode)死亡后,系统会监测并自动将 待命主节点进程(NameNode-standbye,又称备Namenode)切换为活动主节点,系统继续完成数据处理任务
有图可以看出:
主备NameNode的进程依赖于shared.edits(本人采用QJM方式),即任何一个journalNode进程死亡都会导致NameNode进程死亡,系统服务不可用
HA原理:
当主Namenode进程死亡后failover-controller(ZKFC)会检测到这一现象,立即将备Namenode切换成主Namenode,维持系统的正常使用
ZKFC进程受控于zkServer的心跳检测