Hadoop-HA Schema故障切换流程及交互关系

网友投稿 404 2022-11-25

Hadoop-HA Schema故障切换流程及交互关系

一张图看明白Hadoop NameNode HA模式下,故障切换流程及交互关系。互相学习,敬请批评指正。

故障切换流程(Active Namenode故障):

1)Active ZKFC的HealthMonitor线程轮循对ActiveNamenode进行健康检查,当发现ActiveNamenode(故障)不健康时,调用回调函数CallBack()的HealthReports方法将ActiveNamenode(故障)的健康状态上报给ZKFailoverController

2)Active选举。主备ZKFC都保持着与Zookeeper的session

Active ZKFailoverController调用quitElection()通知ActiveStandbyElector将ActiveNamenode(故障)退出选举,放弃Active角色Active ZKFC的ActiveStandbyElector通过session,操作Zookeeper删除ActiveStandbyElectorLock(选举锁临时节点)和Active BreadCrumb(记录Active地址信息的持久节点)两个Znode节点Standby ZKFC监听到ActiveStandbyElectorLock(选举锁临时节点)不存在时,调用joinElection()通知ActiveStandbyElector通过session操作Zookeeper创建ActiveStandbyElectorLock、ActiveBreadCrumb两个Znode节点,将StandbyNamenode地址信息写入ActiveBreadCrumb节点

4)状态切换

Active ZKFC的ActiveStandbyElector通过becomeStandby()通知ZKFailoverCtroller,将ActiveNamenode(故障)变更为Standby状态Standby ZKFC的ActiveStandbyElector通过becomeStandby()通知ZKFailoverCtroller,将StandbyNamenode变更为Active状态

5)完成切换

Active ZKFailoverCtroller通过becomeStandby()通知ActiveNamenode(故障)将状态变更为Standby状态Standby ZKFailoverCtroller通过becomeStandby()通知StandbyNamenode将状态变更为Active状态

6) 新ActiveNamenode通过QJM对epoch number(txid) + 1,开始接收请示并记录新的editlog

故障切换完成

故障切换流程(Active ZKFC故障):

1)Active ZKFC故障,引起ZKFC与Zookeeper保持的session超时或断开,Zookeeper将主动关闭session连接,并清理ActiveStandbyElectorLock(选举锁临时节点)

2)抢占Active锁

Standby ZKFailoverCtroller监听到ActiveStandbyElectorLock(选举锁临时节点)不存在,调用joinElection()通知ActiveStandbyElection加入选举,抢占Active锁Standby ZKFC的ActiveStandbyElection通过session操作Zookeeper创建ActiveStandbyElectorLock(选举锁临时节点)和ActiveBreadCrumb(记录Active地址信息的持久节点)两Znode节点

如果ActiveBreadCrumb节点不存在则创建,并写入StandbyNamenode的地址信息如果ActiveBreadCrumb节点存在,并且记录有ActiveNamenode的地址信息,则调用becomeStandby()通知ActiveNamenode变更为Standby状态,如果becomeStandby()调用失败,则调用toFance()使用fuser shell命令,强制杀死ActiveNamenode

3)Standby ZKFC的ActiveStandbyElection调用becomeActive()通知ZKFailoverCtroller,将StandbyNamenode变更为Active状态

4)新ActiveNamenode通过QJM对epoch number(txid) + 1,开始接收请示并记录新的editlog

故障切换完成

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:CAN FD控制器MCP2517FD的主要特性 PCB正面布局
下一篇:Java时间复杂度、空间复杂度的深入详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~