一、背景
在Hadoop 2.0.0之前,HDFS集群中只有一个namenode,如果namenode故障,那么这个集群将不可用,直到namenode重启或者其他namenode接入。
有两种方式会影响集群的整体可用性:
1、意外的突发事件,比如物理机器crash,集群将不可用,直到管理员重启namenode。
2、系统维护,比如软件升级等,需要关闭namenode,也会导致集群暂时性的失效。
HDFS 的HA集群特性即解决这个问题,它通过在集群中同时运行2个namenodes,当Active namenode故障失效后,即可快速故障转移到新的Namenode上(standby namenode)。
架构:
故障自动切换:zookeeper集群 ZKFC
namenode数据最终一致性:JN集群(journal node)