HDFS HA ZKFC 分析

本文深入探讨了ZKFC在HDFS高可用性(HA)中的角色,它负责监控NameNode状态,协调active和standby NameNode之间的切换。ZKFC组件包括HealthMonitor和ActiveStandbyElector,确保系统的稳定性和故障切换能力。
摘要由CSDN通过智能技术生成

图片来源https://issues.apache.org/jira/secure/attachment/12521279/zkfc-design.pdf

ZKFC 的作用: 监测NameNode,进行active, standby 之间的切换。

这张图显示ZKFC 的具体组成:由HealthMonitor, ActiveStandbyElector 组成。ZKFC 会把回调类

HealthCallbacks,ActiveStandbyElectorCallback注册到HealthMonitor,ActiveStandbyElector  中
HealthMonitor: 监测NN的状态
ActiveStandbyElecotor: 相当于zookeeper的Client,监视着znode(zkLockFilePath,zkBreadCrumbPath), 当znode 发生变化的时候,进行抢夺active namenode, 退化成standby namenode 等工作


org.apache.hadoop.ha.ZKFailoverController( 简称ZKFC), org.apache.hadoop.ha.HealthMonitor(简称HM), org.apache.hadoop.ha.ActiveStandbyElector(简称Elector)

两个NN启动时:
各自的HM 监测到各自的NN 状态发生变化,从State.INITIALIZING 转到State.SERVICE_HEALTHY 触发了ZKFC的org.apache.hadoop.ha.ZKFailoverController#recheckElectability函数,ZKFC 让Elector 执行org.apache.hadoop.ha.ActiveStandbyElector#joinElection函数参与选举,在joinElection函数中,Elector 要创建znode ,
其znode path 为zkLockFilePath,该znode类型为EPHEMERAL(临时类型)。并将自己(ELector)注册为zookeeper的watcher, 之后在org.apache.hadoop.ha.ActiveStandbyElector#processResult接收到事件。在这个函数里 决定了哪个NN 成为activeNameNode, 哪个NN 成为standby NameNode. 判断依据就是谁先创建了 zkLockFilePath znode, 谁就 becomeActive。另一个就becomeStandby
 具体代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值