其它综合

关注公众号 jb51net

关闭
首页 > 网络编程 > 其它综合 > HDFS Namenode 高可用

带你了解HDFS的Namenode 高可用机制

作者:大象教程

为了Hadoop更好的应用,Hadoop 2.0 及之后版本增加了 Namenode 高可用机制,本文详细介绍 Namenode 高可用机制,可供大家参考

HDFS NameNode 高可用

在 Hadoop 2.0.0 之前,一个集群只有一个Namenode,这将面临单点故障问题。如果 Namenode 机器挂掉了,整个集群就用不了了。只有重启 Namenode ,才能恢复集群。另外正常计划维护集群的时候,还必须先停用整个集群,这样没办法达到 7 * 24小时可用状态。Hadoop 2.0 及之后版本增加了 Namenode 高可用机制,下面详细介绍。

Hadoop Namenode 高可用架构


Hadoop 2.0 克服了 Namenode 单点故障问题,即在一个集群中有2个 Namenode 节点,一个是活动的Namenode节点(Active Namenode),即主节点,一个是备用 Namenode(Passive Namenode),即备用节点,而且支持热备份和故障切换。

活动 Namenode:负责处理集群中所有客户端请求。
备用 Namenode:备用节点,拥有和活动的 Namenode 一样的元数据。在活动 Namenode 失效后,会接管它的工作。

活动 Namenode 和备用 Namenode 之间是如何同步数据的呢?即他们是怎么保持一致性的,主要有下面几点:

了解完 Hadoop 高可用架构之后,让我们来看一下 Hadoop Namenode 高可用是怎么实现的。

Namenode 高可用的实现

这里主要介绍通过隔离(fencing)和Quorum Journal Manager(QJM)共享存储实现的 HDFS 高可用。

隔离(Fencing)

隔离(Fencing)是为了防止脑裂,就是保证在任何时候HDFS只有一个Active NN,主要包括三个方面:

QJM 的 Fencing 方案只能让原来的 Active Namenode 失去对 JN 的写权限,但是原来的 Active Namenode 还是可以响应客户端的请求,对 Datanode 进行读。对客户端和 DataNode 的 fence 是通过配置 dfs.ha.fencing.methods 实现的。

Hadoop 公共库中有两种Fencing实现:sshfence、shell

QJM共享存储

Qurom Journal Manager(QJM)是一个基于 Paxos 算法实现的 HDFS 元数据共享存储的方案。QJM 的基本原理就是用 2N+1 台 JournalNode 存储 EditLog,每次写数据操作有大多数(>=N+1)返回成功时即认为该次写成功,数据不会丢失。这个算法所能容忍的是最多有 N 台机器挂掉,如果多于 N 台挂掉,这个算法就失效了。这个原理是基于 Paxos 算法的。

用QJM的方式来实现HA的主要好处有:

以上就是带你连接HDFS的Namenode 高可用机制的详细内容,更多关于HDFS Namenode 高可用的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文