各种的HA

1.定义:
所谓HA(High Available),即⾼可⽤(724⼩时不中断服务)。Hadoop-HA严格来说应该分成各个组件的HA机制:
HDFS的HA和YARN的HA。
2.HDFS的HA
HDFS HA功能通过配置Active/Standby两个NameNodes实现在集群中对NameNode的热备来解决上述
问题。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种⽅式将NameNode很快的切换
到另外⼀台机器。
hadoop2.0----支持2个NN
hadoop3.0----引入多个NN
3. hdfs-ha的工作机制:
几个角色
:zkfc(zookeeper failover)(负责监控nn状况和zookeeper通信) 、NN、qjournal(负责存储edit日志和fsimage)、zookeeper(负责监控nn状况)、
首先是备份机制
2台nn之间用了qjouranl储存元数据(fsimage和edit),active状态的nn写入edit数据,standby读入数据。并且qjournal也是高可用的集群具有容错性。
然后是故障转移机制
zkfc和NN绑定,并且与zookeeper连接,负责监控监控nn状态,并且与zookeeper联系,如果nn挂了(要么假死他会删除临时节点,要么机器挂了那么zk能检测到(因为是集群所以高可靠,不可能所有的网都断了)都能检测到,然后通知到另外一个standy节点的zkfc,zkfc可以通过多种方式去完成杀死前任的任务,然后将自己变成active状态。
在接收到另外一台 nn挂掉以后,(zkfc在zk中抢占ActiveStandbyElectorLock获取资格),这台机器就可以尝试远程登录并且杀死nn进程;如果登录失败再自定义脚本将那一台机器封闭掉(比如通知堡垒机将其隔离断网等)再确认他死去以后,将自己的
节点信息*写入到zk中的ActiveBreadCrumb节点中以便下次自己死了让别人杀他,他在启动自己作为active状态。
总体形成了high-Available
注意:如果zkfc挂了,那么集群nn以standby的身份存在。
最后选举机制(即决定谁是老大)
由zkfc决定,看在zk中注册的时间,ls,get,哪个早哪个就是active状态。首先都会去抢占zk中抢占ActiveStandbyElectorLock节点,看谁早到谁就牛逼了,然后将自己节点信息写入到ActiveBreadCrumb节点中。

4.yarn-ha的工作机制
yarn是给ResourceManager做备份,由于rm不像hdfs那样要存储元数据edit只需要转移故障被其他的节点识别到就行,所以不需要qjournal作为第三方的元数据存储。

5.zk的两大特点:
1.客户端如果对Zookeeper的数据节点注册Watcher监听,那么当该数据节点的内容或是其⼦节点
列表发⽣变更时,Zookeeper服务器就会向订阅的客户端发送变更通知。
2.对在Zookeeper上创建的临时节点,⼀旦客户端与服务器之间的会话失效那么临时节点也会被⾃动删除
6.zab协议
ZAB 协议是为分布式协调服务 Zookeeper 专⻔设计的⼀种⽀持崩溃恢复和原⼦⼴播协议。主备模式保证⼀致性
ZAB 协议的消息⼴播过程类似于 ⼆阶段提交过程。对于客户端发送的写请求,全部由 Leader 接收,Leader 将请求封装成⼀个事务 Proposal(提议),将其发送给所有 Follwer ,如果收到超过半数反馈ACK,则执⾏ Commit 操作(先提交⾃⼰,再发送 Commit 给所有 Follwer)
leader崩溃以后
1.ZAB 协议确保那些已经在 Leader 提交的事务最终会被所有服务器提交。
2.ZAB 协议确保丢弃那些只在 Leader 提出/复制,但没有提交的事务。
保证新的老大的zxid最大

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值