保证集群运行的高稳性。
1.相关版本:
Hadoop1.x 没有高可用
Hadoop2.x 自己手动配置高可用
Hadoop3.x 框架中已经支持高可用,无需手动配置
2.实现原理:
在一个集群中,有两个NameNade
同一时刻只能有一个NameNode处于active状态,另一个处于standby状态
这两个NameNode通过zookeeper实现数据的实时同步
某一时刻如果active状态的NN挂掉,standby状态的NN马上切换到active状态
为了避免出现脑裂的情况,在集群中有一个健康管理的进程
一旦数据交互不能满足需求的时候
不管是否处于active状态直接杀死,启动下一个。
3.NameNode的联邦机制
如果集群内节点的数量特别多且数据量相当庞大,元数据也可能占用很大的空间
可以使用多个active状态的NameNode节点存储的都是不同的元数据,有条件要求。