1)状态为active状态的namenode向共享文件系统journalnode写入编辑文件日志,状态为standby的namenode从共享文件系统读取编辑日志,保持与active节点的同步;
2)每个datanode节点会向所有的namenode节点报告自身的信息和状态;
3)zkfc作为一个轻量级故障转移控制器,基于zookeeper实现的机制,由namenode运行的独立线程,在启动zkfc时,他会注册healthmonitor和activestandbyelector服务组件,同时会向注册的服务组件注册相应的回调方法。
其中healthmonitor主要负责监控namenode的状态,当namenode状态改变,会回调ZKFC的相应方法进行自主的主备选举。
ActivestandbyElector:主要进行主备选举,内部调用zookeeper的选举逻辑,当选举结束后,调用zkfc的相应方法切换主namenode或者备namenode的状态。
主备切换的逻辑图如下:
1)healthmonitor监控namenode的状态,判断namennode装填是否改变
2)当namenode状态改变,则healthmonitor调用在ZKFC进行主备选举;
3)ZKFC判断是否需要进
namenode的ha实现
最新推荐文章于 2022-08-15 16:58:32 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)