源自单点失效问题,也就是当NameNode不可用的时候,用什么办法可以平滑过渡?
最直接的办法是再添加一个备用的NN,这就产生了Active NameNode和Standby NameNode的设计思路。
接下来的一个问题是,如何让Standby Namenode的文件系统命名空间元数据与Active NameNode 的一致呢?
目前的解决办法有QJM方法和NFS方法。
QJM方案:添加多个Journal Node,这个数字是2F+1,通过Paxos协议保证数据的一致性,QJM最多可容忍F个JournalNode同时发生故障而系统仍然可以正常运行。
还有一个问题是,当ANN出现了故障之后,如何自动切换?
目前采用的方案是使用zookeeper实现“领导选举”。
参见下图(图片来自Linux公社):
原文:http://www.cnblogs.com/xiamodeqiuqian/p/4887471.html