相较与Hadoop1.0,Hadoop2.0提供了比较完整的单点故障解决方案(Hadoop HA)
Hadoop2.0内核由三个分支组成:HDFS、MapReduce和YARN,其他的Hadoop生态系统组件比如:HBase、Hive、Pig等,均是基于这三个系统开发的。
因此在Hadoop2.0,存在着三个子系统的单点故障问题。
正式介绍解决方案之前,先简要回顾这三个子系统:
(1)HDFS:即分布式存储系统。由NameNode和DataNode组成,其中NameNode存储了元数据信息和操作日志,由于它是唯一的,其可用性直接决定了整个存储系统的可用性。
(2)YARN:Hadoop2.0中新引入的资源管理系统,它的引入使得Hadoop不再局限于只进行MapReduce这一类的计算,从而支持了多样化的计算框架。它由ResourceManager和NodeManager组成,其中ResourceManager作为整个系统的唯一组件,存在单点故障问题。
(3)MapReduce:目前存在两种MapReduce实现:一种是可独立运行的MapReduce,它由JobTracker和TaskTracker两部分组成,其中JobTracker存在单点故障问题;另一种是MapReduce On YARN,在这种实现中,每个作业独立使用一个作业跟踪器(ApplicationMaster),彼此之间不再相互影响,不存在单点故障问题。因此,本文的单点故障问题是针对第一种MapReduce实现提出的。
总体上说,Hadoop中HDFS、MapReduce和YARN的单点故障解决方案是一致的(采用Hadoop HA)。分为手动模式和自动模式。
手动模式是指由管理员通过命令进行主备切换,这通常在服务升级时有用。
自动模式可降低运维成本,但存在潜在危险。
两