2021-03-10

12 篇文章 0 订阅
9 篇文章 0 订阅

1.8 删除/hadoop-ha/hdfsHACluser节点及其子节点

现象:两个Namenode都为Standby状态

解释:

  1. 两个Namenode被kill后,健康状态变为SERVICE_NOT_RESPONDING,运行quitElection方法,删除znode,销毁zookeeper客户端对象
  2. 两个Namenode重新上线后,HealthMonitor检测到健康状态为HEALTHY,会调用joinElection方法,尝试创建/hadoop-ha/hdfsHACluster/ActiveStandbyElectorLock节点,但hdfsHACluster节点被我们删除了,会报fatalError,ZKFC SHUTDOWN,两个Namenode维持standby状态
  3. 守护进程拉起ZKFC,ZKFC检测到父节点hdfsHACluster不存在,SHUTDOWN,之后进入不断重启的循环。
  4. 运行hdfs zkfc -formatZK后会创建/hadoop-ha/hdfsHACluster节点,之后流程和正常启动后类似,恢复正常。

1.9 Namenode磁盘空间不足

现象:SNN切换为ANN,ANN切换为SNN,可以继续读写文件

问题:此时,再kill ANN,SNN会不会变成ANN

解释:

  1. HM检测到磁盘空间不足,健康状态变为SERVICE_UNHEALTHY,调用quitElection方法,断开连接,销毁zk客户端,锁节点自动删除
  2. SNN watch到锁节点删除事件,joinElection,创建锁节点;fence原ANN节点,使其状态变为Standby;自己成为ANN
  3. 此时,再kill ANN,对SNN不会产生影响,因为SNN所在ZKFC已经没有zk客户端,HM一直处于“检测-UNHEALTHY”的循环。

1.10 znode数据异常(修改ActiveBreadCrumb节点内容)

现象:两个NN节点都为Standby状态

解释:

  1. 删除锁节点后,两个ZKFC都watch到这一事件,开始抢占创建锁节点
  2. ZKFC1成功创建锁节点,开始fence另一个节点的NN
  3. ZKFC1解析ActiveBreadCrumb中的信息失败,fence失败,rejoinElection(断开zk连接;joinElection)
  4. ZKFC1断开zk连接后,锁节点删除,被ZKFC2观察到,创建锁节点,开始fence另一个节点的NN
  5. ZKFC1和ZKFC2开始陷入3和4的死循环,两个NN一直处于Standby状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值