Hadoop HA原理详解

一、手动切换:

1、一个NanmeNode进程处于Acrive状态,另一个NameNode处于Standby状态.Active的NameNode负责处理客户端的请求.
2、Active的NN修改了元数据之后,会在JNs的半数以上的节点上记录这个日志。Standby状态的NameNode会监视任何对JNs上edit log的更改。一旦edits log出现更改,Standby的NN就会根据edits log更改自己记录的元数据。
HA手动切换
3、当发生故障转移时,Standby主机会确保已经读取了JNs上所有的更改来同步它本身记录的元数据,然后由Standby状态切换为Active状态。
4、为了确保在发生故障转移操作时拥有相同的数据块位置信息,DNs向所有NN发送数据块位置信息和心跳数据。
5、JNs只允许一台NameNode向JNs写edits log数据,这样就能保证不会发生“脑裂”。

二、自动切换

HA 自动切换
1、添加zookeeper集群,在每个NameNode的主机上还各自运行着一个zkfc进程,zkfc就是zookeeper的客户端。
2、zkfc要和zookeeper集群保持长连接,心跳;在集群启动的时候,两个NameNode均处于standby状态。
3、两个NameNode的zkfc要向zookeeper集群抢占一个临时节点,该临时节点保存了主NameNode的信息,哪个抢先zkfc创建成功,则还zkfc所在的NameNode就成为activeNameNode;备份的NameNode上的zkfc监控主NameNode创建的临时节点。
4、一旦主NameNode宕机,zkfc不能和zookeeper集群保持心跳链接,临时节点消失。
5、备份NameNode上的zkfc要向zookeeper集群抢占临时节点,如果抢占成功,备份NameNode将变成主NameNode。

(在备份NameNode成为主NameNode之前,要和原来的NameNode通信,确保原来的NameNode不能提供正常服务。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值