1、Hadoop2特点
HDFS1.0存在单点故障问题,第二名称节点无法解决此问题
所以提出了HDFS HA(High Availability)
HA集群设置两个名称节点,活跃(Active)和待命(standby)
两种名称节点的状态同步,可以借助于一个共享存储系统来实现
一旦活跃名称节点出现故障,就可以立即切换到待命名称节点
Zookeeper确保一个名称节点对外服务
名称节点用于维护映射信息,数据节点同时向两个数据节点汇报信息
(2)在Hadoop 1中, HDFS NameNode单点故障问题尤其严重。所幸在Hadoop 2中该问题已经解决。经过多个版本的更替,Hadoop 已经可以被用于生产环境。HDFS NameNode和
YARN Resource Manage的高可用方案十分相似,并且复用了部分代码。但由于HDFS对数
据存储要求比较高,所以HDFS的高可用实现较为复杂
2、HDFS和zookeeper如何实现高可用
(1)启用主节点和备用主节点:两台主节点形成互相备份,一台为启用状态,另一台为备用状态。只有启用的主节点才能对外提供读写服务。备用的主节点仅仅可以同步启用主节点的日志文件和接受数据节点的数据块报告。
(2)故障转移控制器:作为独立的进程运行,主要是对主备节点切换进行总体的控制。故障转移控制器运行在主节点上,当检测到故障时,借助ZooKeeper实现自动的主备选举和
切换。ZooKeeper 为故障转移控制器提供选举支持。
(3)共享存储系统:实现HDFS高可用的最重要的部分,保存了主节点运行过程中所产生的HDFS的元数据。主节点和备用主节点可以通过共享存储系统实现元数据同步。在主备切换时,新启用的主节点在确认元数据完全同步完成之后,才可以对外提供服务
(4)数据节点:除了通过共享存储系统共享元数据之外,启用的主节点和备用的主节点还需要共享数据块(Block )与数据节点之间的映射关系。
04-19