简单聊聊HDFS的HA

来源:互联网 发布:js二维数组固定长度 编辑:程序博客网 时间:2024/05/21 09:29
HDFS 的HA 原理:

HDFS的HA,指的是在一个集群中存在两个NameNode,分别运行在独立的物理节点上。在任何时间点,
只有一个NameNode是处于Active状态,另一种是在Standby状态。 Active NameNode负责所有的客户端的操作,而Standby NameNode用来同步Active NameNode的状态信息,以提供快速的故障恢复能力。

为了保证Active NN与Standby NN节点状态同步,即元数据保持一致。除了DataNode需要向两个NN发送block位置信息外,还构建了一组独立的守护进程”JournalNodes”,用来同步FsEdits信息。当Active NN执行任何有关命名空间的修改,它需要持久化到一半以上的JournalNodes上。而Standby NN负责观察JNs的变化,读取从Active NN发送过来的FsEdits信息,并更新自己内部的命名空间。一旦ActiveNN遇到错误,Standby NN需要保证从JNs中读出了全部的FsEdits,然后切换成Active状态。使用HA 的时候,不能启动SecondaryNameNode ,否则会出错。

通过zookeeper来实现active和standby之间的自动切换。

如下图所示:

图片来自于网络
0 0