目录

Hadoop-HA(高可用)机制

首先:在每个NAMENODE上都会有一个zkfc(zookeeper failover colltroller) ,负责这两个的状态管理。哪个是(active和standby)然后写入zk集群里面。同时监控自己所在的机器是否正常。一旦active上zkfc的发现异常后,会告诉知另一台zkfc,另一台收到后就会用自己的进程,做一个状态的切换。然后将自己变为active,然后从qjournai集群中的edits快速同步下来。相应其他程序,同时跟新zookeeper里的换掉。

细节:如果是某一个时间点active出现假死状态。然后当standsy不知道也去注册了,就会同时出现2个active。这时就会有2个同时向edits写数据,客户端也不知道该去链接那个。(术语叫做"脑裂")。这个时候:standby就会直接发送ssh的指令(kill -9 ****)过去,直接杀这个active进程。防止发生这个问题。

还有一个问题:如果你发送了一个kill -9 然后网络卡了,没有杀掉这个进程。那这个时候就需要返回是否成功杀掉的结果反馈。如果没有及时得到成功的返回,就会再调用(用户提供的shell脚本程序)这个是用户自己定义的。放的位置业是自己配制的。(可以让active断电,断网等等)当调用成功后就会做切换。再将zk里的节点跟新掉。

要点:1.配置了2个name node

2.将edits剥离出来放到qjourna集群管理起来,但是qjourna又是依赖zk集群

3.状态管理使用zkfc,每个zkfc监控自己的服务,出问题就通知对方,

4.出现问题的脑裂解决方法,脚本运用。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Yan-英杰13 分钟前
DeepSeek-R1模型现已登录亚马逊云科技
java·大数据·人工智能·科技·机器学习·云计算·deepseek
黄雪超21 分钟前
Flink介绍——实时计算核心论文之Storm论文总结
大数据·论文阅读·storm
TDengine (老段)24 分钟前
TDengine 中的日志系统
java·大数据·数据库·物联网·时序数据库·tdengine·iotdb
程序员 小柴2 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
蒋星熠2 小时前
在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
大数据·linux·hadoop·分布式·ubuntu·docker
小样vvv3 小时前
【分布式】微服务系统中基于 Hystrix 的熔断实现方案
分布式·hystrix·微服务
SelectDB技术团队4 小时前
Apache Doris 2.1.9 版本正式发布
大数据·数据仓库·数据分析·doris·数据湖·湖仓一体·日志数据
gegeyanxin4 小时前
flink异步读写外部数据源
大数据·flink·异步io·访问外部数据
说私域5 小时前
定制开发开源AI智能名片S2B2C商城小程序:技术赋能商业价值实现路径研究
大数据·人工智能·小程序·开源