HDFS-HA架构
- ActiveNode和StandbyNode形成互备,当Active挂掉的时候启动standby作为active对外提供服务。
- ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Zookeeper 实现自动的主备选举和切换,
- 共享存储系统:主NN和备份NN实现元数据同步的关键,新的NN只有在确认元数据完全同步后才能继续对外提供服务。
- DataNode节点:除了同步元数据之外,还 需要同步hdfs数据块和datanode的映射关系,DN会像主NN和备份NN上报数据块的位置信息。
- ZK集群:为主备切换控制器提供主备选举支持,
JournalNode
用来存放editlog,active往里写,standby从中读取editlog实现数据同步。active状态的NN的命名空间有任何改动时,会通知大部分JournalNode进程,standby读取JNs中的变更信息,并监控editlog的变化,把变化应用于自己