首页 > 其他分享 >2 HDFS高可用机制

2 HDFS高可用机制

时间:2022-11-09 17:14:03浏览次数:51  
标签:HDFS 可用 ZooKeeper 故障 Active NameNode 机制 ZKFC 节点

HDFS高可用 对于保证NameNode元数据的一致性和编辑日志的安全性,采用Zookeeper来存储编辑日志文件。 两个NameNode一个是Active状态的,一个是Standby状态的,一个时间点只能有一个Active状态的。 NameNode提供服务,两个NameNode上存储的元数据是实时同步的,当Active的NameNode出现问题时,通过Zookeeper实时切换到Standby的NameNode上,并将Standby改为Active状态。 客户端通过连接一个Zookeeper的代理来确定当时哪个NameNode处于服务状态。   自动故障转移为HDFS部署增加了两个新组件:ZooKeeper和ZKFailoverController(ZKFC)进程。ZooKeeper是维护少量协调数据,通知客户端这些数据的改变和监视客户端故障的高可用服务。HA的自动故障转移依赖于ZooKeeper的以下功能:   1)故障检测:集群中的每个NameNode在ZooKeeper中维护了一个持久会话,如果机器崩溃,ZooKeeper中的会话将终止,ZooKeeper通知另一个NameNode需要触发故障转移。   2)现役NameNode选择:ZooKeeper提供了一个简单的机制用于唯一的选择一个节点为active状态。如果目前现役NameNode崩溃,另一个节点可能从ZooKeeper获得特殊的排外锁以表明它应该成为现役NameNode。   ZKFC是自动故障转移中的另一个新组件,是ZooKeeper的客户端,也监视和管理NameNode的状态。每个运行NameNode的主机也运行了一个ZKFC进程,ZKFC负责:   1)健康监测:ZKFC使用一个健康检查命令定期地ping与之在相同主机的NameNode,只要该NameNode及时地回复健康状态,ZKFC认为该节点是健康的。如果该节点崩溃,冻结或进入不健康状态,健康监测器标识该节点为非健康的。   2)ZooKeeper会话管理:当本地NameNode是健康的,ZKFC保持一个在ZooKeeper中打开的会话。如果本地NameNode处于active状态,ZKFC也保持一个特殊的znode锁,该锁使用了ZooKeeper对短暂节点的支持,如果会话终止,锁节点将自动删除。   3)基于ZooKeeper的选择:如果本地NameNode是健康的,且ZKFC发现没有其它的节点当前持有znode锁,它将为自己获取该锁。如果成功,则它已经赢得了选择,并负责运行故障转移进程以使它的本地NameNode为Active。故障转移进程与前面描述的手动故障转移相似,首先如果必要保护之前的现役NameNode,然后本地NameNode转换为Active状态。  

标签:HDFS,可用,ZooKeeper,故障,Active,NameNode,机制,ZKFC,节点
From: https://www.cnblogs.com/skyzy/p/16874400.html

相关文章

  • 易基因|疾病研究:DNA甲基化与转录组分析联合揭示吸烟免疫相关疾病的表观遗传机制
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2021年12月09日,《ClinEpigenetics》杂志发表了题为“Genome-widemethylationandexpressionanalysesre......
  • js线程机制与事件机制
    基于尚硅谷的尚硅谷JavaScript高级教程提供笔记撰写,加入一些个人理解github源码博客下载线程与进程进程程序的一次执行,它占有一片独有的内存空间可以通过windows......
  • 重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似
    在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代......
  • python(27)反射机制
    1.什么是反射?它的核心本质其实就是基于字符串的事件驱动,通过字符串的形式去操作对象的属性或者方法 2.反射的优点一个概念被提出来,就是要明白它的优点有哪些,这样我......
  • epoll机制
    ​​/** *该文件名为epoll.c * * *我的测试环境AS4U3 *[gan@localhost~]$uname-r *2.6.9-34.EL */#include<sys/types.h>#include<sys/socket.h>#include<......
  • CAS无锁机制
    1、背景传统Synchronized锁:悲观,如果没有获取到锁的情况下,会让当前线程变为阻塞的状态,释放CPU执行权,效率非常低。乐观锁:本质上没有锁,没有死锁现象,而且效率比较高......
  • grafana agent 动态配置内部机制简单说明
    grafanaagent动态配置目前属于一个体验特性,但是设计上利用了gomplate一个强大的模版引擎工具参考配置运行配置参考agentv2:image:grafana/agent:ma......
  • RabbitMQ的消息确认ACK机制
    ACK机制由于通信过程的不可靠性,传输的数据不可避免的会出现丢失、延迟、错误、重复等各种状况,TCP协议为解决这些问题设计了一系列机制。这个机制的核心,就是发送方向接收方发......
  • RabbitMQ3/4---持久化机制、内存磁盘控制
    1.RabbitMQ持久化机制RabbitMQ持久化机制分为队列持久化、消息持久化、交换器持久化。不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。(1)RabbitMQ队列持久化队列......
  • logrotate机制与原理
    日志实在是太有用了,它记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,就像飞机里的黑匣子,记录的信息再重要也只能记......