Hadoop的master角色的单点故障问题
Hadood中的NameNode和ResourcManager是集群中的重要角色,如果这两个角色出现问题将导致整个集群无法使用。所以保证这两个角色的高可用是保证整个hadoop分布式系统高可用的关键。
为了保证其高可用,可以想到的一个办法是使用主从冷备或双主热备。但是为了在这两个角色出问题时尽快知晓并解决,还需要使用一个额外的应用程序监控这个两个角色的健康状况,当这两个角色出问题时,自动使用相应的解决方案,以减少系统停用时间,保证hadoop 的高可用。
正如上面所说的,这种协助分布式应用程序更好的提供服务的程序,我们称之为分布式协调程序。
因为分布式协调程序的重要性,所以其自身必须要保证高可用,才能保证被其协调的分布式应用程序的高可用。
目前市面上最流行的(也是唯一的企业级的)分布式协调应用程序就是zookeeper。需要注意的是:上述只是zookeeper能解决的问题之一,zookeeper还能解决很多其他的应用场景。
详解
相较与Hadoop1.0,Hadoop2.0提供了比较完整的单点故障解决方案(Hadoop HA)
Hadoop2.0内核由三个分支组成:HDFS、MapReduce和YARN,其他的Hadoop生态系统组件比如:HBase、Hive、Pig等,均是基于这三个系统开发的。
因此在Hadoop2.0,存在着三个子系统的单点故障问题。
正式介绍解决方案之前,先简要回顾这三个子系统:
(1)HDFS:即分布式存储系统。由NameNode和DataNode组成,其中NameNode存储了元数据信息和操作日志&#x