首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >故障转移过程是如何工作的?

故障转移过程是如何工作的?
EN

Stack Overflow用户
提问于 2015-10-23 21:21:08
回答 1查看 23K关注 0票数 19

Hadoop定义指南说-

每个Namenode运行,一个轻量级故障转移控制器进程,其任务是监视其Namenode的故障(使用简单的心跳机制),并在namenode失败时触发故障转移。

为什么一个namenode可以运行一些东西来检测它自己的故障?

谁会把心跳传给谁?

这个过程在哪里运行?

它是如何检测namenode故障的?

它通知谁进行过渡?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-24 02:08:12

来自Apache文档

ZKFailoverController (ZKFC)是一个新的组件,它是一个ZooKeeper客户端,它还监视和管理NameNode的状态。运行NameNode的每台机器也运行ZKFC,ZKFC负责:

健康监测- ZKFC定期使用健康检查命令调用其本地NameNode。只要NameNode以健康状态及时响应,ZKFC就会认为节点是健康的。如果节点已崩溃、冻结或以其他方式进入不健康状态,则健康监视器将将其标记为不健康。

ZooKeeper session management --当本地NameNode处于健康状态时,ZKFC将在ZooKeeper中打开一个会话。如果本地NameNode是活动的,它还保存一个特殊的“”znode。这个锁使用动物园管理员对“临时”节点的支持;如果会话过期,锁节点将被自动删除。

动物园管理员-基于选举-如果本地NameNode是健康的,并且ZKFC看到目前没有其他节点持有锁node,它自己将尝试获取锁。如果它成功了,那么它就有“赢得了选举”,并负责运行故障转移以使其本地NameNode处于活动状态。

看看这个Apache PDF,它是HDFS-2185 JIRA问题的一部分。

幻灯片16

http://www.slideshare.net/cloudera/hdfs-update-lipcon-federal-big-data-apache-hadoop-forum

Hadoop:中的自动命名节点故障转移过程:

在典型的HA集群中,两台独立的机器被配置为NameNodes。在任何时候,一个NameNodes处于活动状态,另一个处于备用状态。Active NameNode负责集群中的所有客户端操作,而备用则只是充当从服务器,保持足够的状态,以便在必要时提供快速故障转移。

为了使备用Namenode与活动Namenode保持状态同步,两个节点都与一组名为JournalNodes (JNs)的独立守护进程通信。

当活动节点执行任何命名空间修改时,它都会持久地将修改的记录记录到这些JNs中的大多数。备用节点从JNs中读取这些编辑并应用到自己的名称空间。

在发生故障转移时,备用将确保它在将自己提升到活动状态之前已经读取了JounalNodes中的所有编辑。这确保在发生故障转移之前完全同步命名空间状态。

对于HA集群来说,一次只有一个NameNodes处于活动状态是至关重要的。ZooKeeper已被用于避免拆分大脑场景,因此名称节点状态不会因故障转移而发散。

幻灯片8来自:http://www.slideshare.net/cloudera/hdfs-futures-world2012-widescreen

概要中的:名称节点是Daemon &故障转移控制器是守护进程。如果名称Node Daemon失败,故障转移控制器Daemon将检测并采取纠正措施。即使整个机器崩溃,ZooKeeper服务器也会检测到它,锁将过期,其他备用名称节点将被选择为活动名称节点。

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33311585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档