高可用原理介绍
hadoop高可用主要分为NameNode高可用和Yarn高可用。
NameNode高可用实现原理
- 将NameNode分为两个角色一个是active状态和stand by 状态
- 这两个节点只有actice 状态下的Namenode负责读取存储元数据,两个节点不能同时处于active状态否则会有脑裂情况发生
- 将Edit文件通过JournalNode 方式存进文件系统中,stand by 节点负责 对 fsimage和edit文件进行合并同步
- 高可用集群去掉了 2NN节点。
- Zookeeper 中的FailoverControllerActive以心跳机制监听ActiveNamenode,如果宕机
则FailoverControllerStandby 首先读取 Journal node 中所有的日志,并将它应用到自己的数据中;通过选举机制得到 新的active节点