hadoop namenode HA 高可用概念和切换NameNode

nn高可用

1、架构介绍

上图,加入zookeper集群,当nn主节点挂掉,通过zk自动将nn副本升级为主节点。
为了提供快速故障转移,备用节点还必须具有关于群集中块的位置的最新信息。为了实现这一点,DataNode配置了所有NameNode的位置,并向NN发送块位置信息和心跳。

如图中的jn集群。当Active节点执行任何名称空间修改时,它会将修改记录持久地记录到大多数这些JN中。待机节点能够从JN读取编辑,并且不断观察它们对编辑日志的更改。当备用节点看到编辑时,它会将它们应用到自己的命名空间。这可确保在发生故障转移之前完全同步命名空间状态,保证两个nn数据最终的一致性。
1)如何确定哪个nn是主节点
图中还新增了一个zkfc角色,是一个jvm进程,用于监控nn状态。当nn启动后,zkfc检测到各自nn都已启动正常运行后,zkfc向zk发送创建锁的消息,谁的锁创建成功,则对应的nn标识为主节点,其它的zkfc则会对该节点进行watch,即监控,并注册回调方法。
2)nn主节点挂掉后,nn副本如何升级为主节点
当nn主节点挂掉后,对应的zkfc检测到nn状态,向zk发送删除锁的消息,锁删除成功后,则触发一个事件,该事件回调副本对应的zkfc,zkfc得到消息后先取zk争夺创建锁,完成后检测nn主节点是否挂掉,挂掉则升级副本为主节点,没挂掉则将主节点降级为副本,将自己对应的nn升级为主节点。
3)主节点zkfc挂掉,主节点没挂
zkfc在zk创建的锁属于临时节点,该节点属于对应的回话session。
zkfc挂掉,zkfc和zk之间tcp链接会随之断开,session随之消失,锁被删除,触发一个事件回调副本的zkfc,zkfc得到消息后先取zk争夺创建锁,完成后检测nn主节点是否挂掉,挂掉则升级副本为主节点,没挂掉则将主节点降级为副本,将自己对应的nn升级为主节点。

2、手动切换NN

查看NameNode的状态
hdfs haadmin -getServiceState nn1
手动切换nn1为active
hdfs haadmin -transitionToActive nn1 ##切换成active
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值