HDFS的高可用机制

在hadoop中,NameNode非常重要,整个HDFS文件系统的元数据信息都由NameNode来管理,一旦NameNode不能工作了,就会影响整个集群的使用,在典型的HA集群管理中,两台独立的机器被配置为NameNode,在工作集群中,NameNode机器一个处于Active状态,另一个处于Standby状态,Standby主机保持足够的状态以提供快速故障切换。
高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换,这样可以保证服务一直在线。
在这里插入图片描述

现在又俩问题:
1、Standby的NameNode如何实现与Active的NameNode保持一致?
Active的NameNode会向JournalNode写文件,写的是edits日志文件,然后Standby的NameNode去读这个日志文件,读完之后就生成元数据信息。

2、怎么知道Active的NameNode挂了,需要Standby的NameNode替补?
zookeeper集群一直在观察ActiveNameNode的健康状况。zookeeper会配合zkfc进程来使用,zkfc会时刻盯着ActiveNameNode,并且在它挂掉的时候让StandbyNameNode替补上,zkfc进程里面有三个组件 (ZKFailoverController,HealthMonitor,ActiveStandbyElector)。
①HealthMonitor通过心跳机制监控NameNode
②HealthMonitor将健康状况汇报给ZKFailoverController
③当NameNode宕机了,ZKFailoverController将宕机情况汇报给ActiveStandbyElector
④ActiveStandbyElector通知zookeeper,选举出新的NameNode
⑤zookeeper回复ActiveStandbyElector一个选举结果
⑥ActiveStandbyElector将选举结果报告给ZKFailoverController
⑦ ZKFailoverController和原NameNode建立通信,改变NameNode状态,由active改变为standby,已经选举出了先的NameNode,防止它死灰复燃。
⑧zookeeper选举出新的NameNode后会通知ZKFailoverController,ZKFailoverController修改NameNode状态,由standby改变为active。

在这里插入图片描述

高可用集群搭建:https://blog.csdn.net/weixin_48185778/article/details/108466965

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值