HDFS HA策略(HighAvailability With QJM)
每个NameNode启动时,由其ZKFC向Zookeeper注册(创建唯一的Znode);当某个NameNode崩溃后,其ZKFC向Zookeeper报告,由Zookeeper删除对应的Znode,然后通过Watch消息原子广播到其他的standby的ZKFC,standby之间开始选取新的active节点作为新的NameNode,然后加载Journal Node节点中的fsimage和edit log从而恢复第一关系
Fsimage和edit log保存在Journal Node,FailoverController监视NameNode的工作状态(Active或者StandBy),且FailoverController需要周期性的向Zookeeper发送心跳信息,当检测到主NameNode故障后,采用投票策略(竞争锁)产生新的主NameNode。读写DataNode后,DataNode会上报其块信息至NameNode,NameNode将新的元数据保存在Journal Node中
Zookeeper和Journal Node的数量为奇数