HDFS高可用与高扩展性机制分析|青训营笔记

105 阅读2分钟

HDFS高可用与高扩展性机制分析|青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第3天

  • HDFS的高可用

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

需要注意一点,为了保证Active NN与Standby NN节点状态同步,即元数据保持一致。

HA集群规划

| node | namenode | datanode | journalnode | zkfc | zookeeper | | ---- | -------- | -------- | ----------- | ---- | --------- | | |bigdata01 | yes | | yes | yes | yes | | bigdata02 | yes | yes | yes | yes | yes | | bigdata03 | | yes | yes | yes | yes|

解释:针对HDFS的HA集群,在这里我们只需要启动HDFS相关的进程即可,YARN相关的进程可以不启动,它们两个的进程本来就是相互独立的。

在HDFS的HA集群中,就不需要启动SecondaryNameNode进程了

  1. namenode: hdfs的主节点
  2. datanode: hdfs的从节点
  3. journalnode: JournalNode进程,用来同步Edits信息的
  4. zkfc(DFSZKFailoverController): 监视namenode的状态,负责切换namenode节点的状态
  5. zookeeper(QuorumPeerMain): 保存ha集群的节点状态信息
  • HDFS的高扩展 HDFS Federation可以解决单一命名空间存在的问题,使用多个NameNode,每个NameNode负责一个命令空间

这种设计可提供以下特性:

1:HDFS集群扩展性。多个NameNode分管一部分目录,使得一个集群可以扩展到更多节点,不再因内存的限制制约文件存储数目。

2:性能更高效。多个NameNode管理不同的数据,且同时对外提供服务,将为用户提供更高的读写吞吐率。

3:良好的隔离性。用户可根据需要将不同业务数据交由不同NameNode管理,这样不同业务之间影响很小。

(待补充)