Hadoop回顾–HDFS的HA机制&Federation机制

  • Post author:
  • Post category:其他

为了解决hadoop集群上所谓的“单点”和单NameNode起作用问题,一群NB的程序员引入了HA和Federation机制。

一、HA机制

1、概念

由于原先的集群中只有一个NameNode,所以一旦这个NameNode出问题或者要升级,整个集群就得停止一段时间。于此,就有了HA机制。

说白了所谓的HA机制就是给NameNode弄了一个热备:给一个HA集群中配置了俩NameNode,平时只有一个活动,另一个装死(类似Slave),一旦正主不行了,备胎瞬间逆袭接管所有任务。当然,这都是开玩笑的说法。但要明白的一点是,备胎也不能自动逆袭,需要手动操作。

2、运行原理

DataNode同时向两个NameNode和Standby NameNode发送心跳信息,备用节点实时监听NameNode的信息,这边一更改,备用节点就把修改内容同步到自己的名字空间(这点与传统的Secondary NameNode提供周期性检查点和清理任务,减少NameNode重启时间不同)。

3、实现方式

(1)NFS:

active NameNode把最近的文件操作写到本地的edits中,然后传输到NFS或JN中。standby NameNode定期检查,从NFS或JN中读取,把edits和fsimage文件合并成一个新的fsimage,而后通知active NameNode获取这个新的fsimage。AN获得新fsimage后替换掉旧的fsiamge。

(2)QJM:(有容错机制)

active NameNode和standby NameNode之间通过一组JournalNode(奇数个)共享数据。活动节点把最近的edits文件写到2n+1个JN上,只要写成n+1个就认为成功,而后standby NameNode从JN上读取edits。

二、Federation机制

1、原理:

直接有多个NameNode,相互独立,彼此之间是联盟关系。每个DataNode向所有NameNode注册,发送心跳信息和块信息报告。

三、HA与Fedration机制的对比

HA解决了单点问题,Federation解决了整个HDFS集群中只有一个名字空间,并且只有单独的一个NameNode管理所有DataNode的问题。


PS:最近笔试面试一场接一场,先大概讲到这里,详细内容之后会补充上来。


版权声明:本文为ROGEN1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。