Hadoop NameNode 高可用实现解析
转自https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/ 前面的两篇文章都是关于分布式一致性协议Raft的, 图解分布式一致性算法 Raft协议详解 ,其中提到了选主等内容。在不同的项目中,也都有类似的主从切换等策略来保证HA。下文是Hadoop中的NameNode的高可用实现分析,可以对照着看看。 如果在公众号内格式排版不便阅读,可以查看链接。 NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pig 以及 HBase 等也都无法正常工作,并且重新启动 NameNode 和进行数据恢复的过程也会比较耗时。这些问题在给 Hadoop 的使用者带来困扰的同时,也极大地限制了 Hadoop 的使用场景,使得 Hadoop 在很长的时间内仅能用作离线存储和离线计算,无法应用到对可用性和数据一致性要求很高的在线应用场景中。