注意:只有hadoop2.x以后才有HA机制
一 、概念性
1.ZKFC(DFSZKFailoverController)------>故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为active状态
2.NameService------>含有两个NameNode,NameService可以进行水平扩展,来提高内存的存储量
3.JournalNode------>用来存放Active NameNode和Standby NameNode共享的edits文件
4.brain split现象 ------> active namenode进入假死状态,但是zkfc误判active namenode死亡,于是切换Standby NameNode为active状态,导致出现两个active namenode
二、 高可靠性原理
(Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换)
2.ZK集群中,ZKFC用来监控NameNode的状态,并把状态发送给ZK,当Active NameNode挂掉了,ZKFC会立刻通知ZK处理,
同时,另一台ZK会给ZKFC发送一个命令给Standby 状态的NameNode,命令Standby NameNode切换为active状态
3.DataNode既向Active NameNode发送指令,又向Standby NameNode发送指令,一旦一个NameNode出现问题,会切换另一个NameNode继续执行任务
注意:与hadoop1.x不同,
hadoop1.x通过fsImage与edits的合并,进行内存数据和磁盘数据的同步
hadoop2.x中Active NameNode会实时的将edits文件写入到一个edits介质JournalNode中,而Standby NameNode会实时的把数据同步到Standby NameNode所在的机器
故,Active NameNode与Standby NameNode的edits文件是实时同步的