ITPub博客

首页 > 大数据 > 数据分析 > Zookeeper解决Hadoop单点问题

Zookeeper解决Hadoop单点问题

原创 数据分析 作者:yanke_shanghai 时间:2016-06-06 11:55:17 0 删除 编辑
Yarn主要由四部分组成
ResourceManage(RM) NodeManage(NM) ApplicationMaster(AM) Container

Yarn单点故障
YARN的单点故障指的是ResourceManager单点问题,ResourceManager负责整个系统的资源管理和调度,内部维护了各个应用程序的ApplictionMaster信息,NodeManager信息,资源使用信息等。考虑到这些信息绝大多数可以动态重构,因此解决YARN单点故障要比HDFS单点容易很多。与HDFS类似,YARN的单点故障仍采用主备切换的方式完成,不同的是,备节点不会同步主节点的信息,而是在切换之后,才从共享存储系统读取所需信息。之所以这样,是因为YARN ResourceManager内部保存的信息非常少,大部分可以重构,且这些信息是动态变化的,很快会变旧。
ResourceManager的工作状况直接决定了整个YARN框架是否正常运转。

ResourceManager HA

Yarn在运行期间,会有多个ResourceManager,但只有一个ResourceManager处于active状态,另外一些则处在standby状态,当Active节点无法正常工作,比如机器挂掉或重启,其余standby状态的节点会通过竞争选举产生新的master节点。
在Hadoop HA中,主要由以下几个组件构成:
(1)MasterHADaemon:与Master服务运行在同一个进程中,可接收外部RPC命令,以控制Master服务的启动和停止;
(2)SharedStorage:共享存储系统,active master将信息写入共享存储系统,而standby master则读取该信息以保持与active master的同步,从而减少切换时间。常用的共享存储系统有zookeeper(被YARN HA采用)、NFS(被HDFS HA采用)、HDFS(被MapReduce HA采用)和类bookeeper系统(被HDFS HA采用)。
(3)ZKFailoverController:基于Zookeeper实现的切换控制器,主要由两个核心组件构成:ActiveStandbyElector和HealthMonitor,其中,ActiveStandbyElector负责与zookeeper集群交互,通过尝试获取全局锁,以判断所管理的master进入active还是standby状态;HealthMonitor负责监控各个活动master的状态,以根据它们状态进行状态切换。。
(4)Zookeeper集群:核心功能通过维护一把全局锁控制整个集群有且仅有一个active master。当然,如果ShardStorge采用了zookeeper,则还会记录一些其他状态和运行时信息。

脑裂
脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和Slave误以为出现两个active master,最终使得整个集群处于混乱状态。解决脑裂问题,通常采用隔离(Fencing)机制,包括三个方面:
共享存储fencing:确保只有一个Master往共享存储中写数据。
客户端fencing:确保只有一个Master可以响应客户端的请求。
Slave fencing:确保只有一个Master可以向Slave下发命令。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30316686/viewspace-2114787/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 端午小记
请登录后发表评论 登录
全部评论

注册时间:2015-06-30

  • 博文量
    65
  • 访问量
    341194