赞
踩
HA表示高可用,YARN的HA主要指ResourceManager的HA,因为ResourceManager作为主节点存在单点故障,所以要通过HA的方式解决ResourceManager单点故障问题。
如何实现HA?需要考虑哪些问题?关键技术难点?
最主要有两点,要求ResourceManager是高可用的,要求如果一个主节点失效了,另一个备用节点能够立刻接替工作对外提供服务,这就涉及故障自动转移的实现。实际上在做故障转移时,还需要考虑当切换到另一个节点时,不应该导致正在连接的客户端失败,主要包括客户端、NodeManager与ResourceManager的连接。
这就是第一个问题:如何实现主备节点的故障转移?
还要考虑新的主节点接替旧的主节点对外提供服务时,如何保证新旧主节点的状态信息(元数据)一致?
这就涉及第二个问题:如何实现元数据的共享存储?
实现YARN的HA主要解决这两个问题,YARN的HA架构如图所示:
(1)实现主备节点间故障转移的对比
YARN的HA和HDFS的HA的不同之处在于,YARN的HA是让主备切换控制器作为资源管理器(ResourceManager)中的一部分,而HDFS的HA是将主备切换控制器作为一个单独的任务运行。这样YARN的HA中主备切换控制器就可以更直接地切换ResourceManager的状态。
(2)实现主备节点间数据共享的对比
ResourceManager负责整个系统的资源管理和调度,内部维护了各个应用程序的ApplicationMaster信息,NodeManager信息、Container使用信息等。考虑到这些信息绝大多数可以动态重构,因此解决YARN集群的单点故障要比解决HDFS集群的单点故障容易得多。
与HDFS类似,YARN的单点故障仍采用主备切换的方式去完成。不同的是,在正常情况下,YARN的备节点不会同步主节点的信息,而是主备切换之后,才从共享存储系统中读取所需要的元数据信息。
之所以这样实现,是因为YARN中的ResourceManager内部保存的信息非常少,而且这些信息是动态变化的,大部分可以重构,原有信息很快会变旧,所以没有同步的必要。因此,YARN的共享存储并没有通过其他机制来实现,而是借助Zookeeper来完成主备节点的信息共享。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。