组件
zkfc
是基于Zookeeper的故障转移控制器,负责控制NameNode的主备切换。
zkfc会监测NameNode的健康状况,当发现Active NameNode出现故障时,会通过Zookeeper进行一次新的选举,完成active和standby的切换。
HealthMonitor
周期性调用NameNode的HAServiceProtocol RPC,监控NameNode的健康状况,并向zkfc进行反馈。
ActiveStandbyElector
接收zkfc的选举请求,通过Zookeeper自动完成选举,选举完成后,回调zkfc的主备切换方法,完成对NameNode的切换。
共享存储系统
共享存储系统负责存储HDFS的元数据,Active NameNode和Standby NameNode通过共享存储系统实现元数据同步,在主备切换过程中,新的Active NameNode必须确保元数据同步完成才能对外提供服务。