Hadoop Namenode 故障转移过程如何工作? [已关闭]

问题描述 投票:0回答:1

Hadoop 权威指南说 -

每个Namenode都运行一个轻量级故障转移控制器进程,其 工作是监控其Namenode是否出现故障(使用一个简单的 心跳机制)并在名称节点发生故障时触发故障转移 失败。

名称节点为什么可以运行某些东西来检测自己的故障?

谁向谁发送心跳?

这个进程在哪里运行?

它如何检测名称节点故障?

向谁通知过渡?

hadoop hdfs hadoop2 failover namenode
1个回答
0
投票

根据 hadoop 文档,您可以在here找到,为了实现自动故障转移,需要在 HDFS 部署中添加一些内容:

1:Zookeeper 法定人数

2:ZKFailoverController流程。

通过文档回答您的问题:

集群中的每台NameNode机器都在ZooKeeper中维护一个持久会话。如果机器崩溃,ZooKeeper 会话将过期,通知其他 NameNode 应触发故障转移

所以回答你的问题:

问:名称节点为什么可以运行一些东西来检测自己的故障?

A:每个名称节点通过在同一台机器上运行的 ZKFailoverController (ZKFC) 服务在 ZooKeeper 上维护一个会话。当此会话过期时,将通知其他名称节点应触发故障转移。

ZKFC 健康监视器还会定期 ping 其本地名称节点(这是您的心跳),如果名称节点崩溃,健康监视器会将该名称节点标记为不健康。

当发生故障的名称节点健康并且是活动名称节点时,它会维护一个特殊的“锁定”znode。当名称节点被标记为不健康时,该锁将被删除。当另一个名称节点发现当前没有其他节点持有锁 znode 时,它将尝试获取锁。如果它这样做,那么它就成为活动名称节点。

问:谁给谁发送心跳?它如何检测名称节点故障?

答:再说一遍。 ZooKeeper 会话。

问:这个进程在哪里运行?

A:ZooKeeper 可以安装在单机上,也可以安装在集群上。您可以阅读文档这里

问:过渡通知谁?

A:这都是由每台机器上运行的 ZKFailoverController 进程处理的。

还有另一篇好文章这里,它比我的话更形象化地描述了这一点。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.