3.19 YARN HA架构及(RM/NM) Restart讲解
一、ResourceManager HA
ResourceManager(RM)负责跟踪集群中的资源,以及调度应用程序(例如,MapReduce作业)。
在Hadoop 2.4之前,ResourceManager是YARN集群中的单点故障。
高可用性功能以Active / Standby ResourceManager对的形式添加冗余,以消除此单点故障。

RM故障转移:
ResourceManager HA通过主动/备用架构实现 - 在任何时间点,其中一个RM处于活动状态,并且一个或多个RM处于待机模式,
等待活动发生任何事情时接管。转换为活动的触发器来自管理员(通过CLI)或启用自动故障转移时的集成故障转移控制器。
手动转换和故障转移:
如果未启用自动故障转移,则管理员必须手动将其中一个RM转换为活动。要从一个RM故障转移到另一个RM,
它们应首先将Active-RM转换为待机状态,并将Standby-RM转换为Active。所有这些都可以使用“ yarn rmadmin ”CLI完成。
自动故障转移:
RM可以选择嵌入基于Zookeeper的ActiveStandbyElector来决定哪个RM应该是Active。当Active关闭或无响应时,另一个RM自动被选为Active,然后接管。
请注意,不需要像HDFS那样运行单独的ZKFC守护程序,因为嵌入在RM中的ActiveStandbyElector充当故障检测器和领导者选择器而不是单独的ZKFC守护程序。
二、ResourceManagerRestart
以下为在官方文档中的内容:
1、概述
ResourceManager是管理资源和调度在YARN上运行的应用程序的中央权限。因此,它可能是Apache YARN集群中的单点故障。
`本文档概述了ResourceManager Restart,这是一项增强ResourceManager以在重新启动时保持正常运行的功能,并且还使ResourceManager的停机时间对最终用户不可见。
ResourceManager Restart功能分为两个阶段:
ResourceManager重新启动阶段1(非工作保留RM重新启动):增强RM以在可插拔状态存储中保留应用程序/尝试状态和其他凭据信息。
RM将在重新启动时从状态存储重新加载此信息,并重新启动以前运行的应用程序。用户无需重新提交申请。
ResourceManager重启阶段2(工作保留RM重启):重新构建ResourceManager的运行状态,重新组合NodeManagers的容器状态和ApplicationMasters的容器请求。
与第1阶段的主要区别在于,RM重启后,以前运行的应用程序不会被终止,因此应用程序不会因RM中断而丢失其工作。
2、特征
阶段1:非工作保留RM重启
从Hadoop 2.4.0版本开始,仅实现ResourceManager Restart Phase 1,如下所述。
总体概念是,当客户端提交应用程序时,RM会将应用程序元数据(即ApplicationSubmissionContext)保留在可插拔的状态存储中,并保存应用程序的最终状态,
例如完成状态(失败,终止,已完成)和诊断时的诊断应用程序完成。此外,RM还会保存安全密钥,令牌等凭据,以便在安全的环境中工作。任何时候RM关闭,
只要在状态存储中可以获得所需的信息(即应用程序元数据以及在安全环境中运行的凭据),当RM重新启动时,它可以从状态存储中获取应用程序元数据并重新提交申请。
如果应用程序在RM关闭之前已经完成(即失败,被杀死,已完成),RM将不会重新提交申请。
在RM停机期间,NodeManagers和客户端将继续轮询RM,直到RM出现。当RM变为活动状态时,它将向所有通过心跳与之交谈的NodeManager和ApplicationMaster
发送重新同步命令。从Hadoop 2.4.0版本开始,NodeManagers和ApplicationMaster处理此命令的行为是:NMs将终止其所有托管容器并重新注册RM。从RM的角度来看,
这些重新注册的NodeManagers与新加入的NM类似。AM(例如MapReduce AM)在收到重新同步命令时会被关闭。在RM重新启动并加载所有应用程序元数据,
来自状态存储的凭据并将它们填充到内存中之后,它将为尚未完成的每个应用程序创建一个新的尝试(即ApplicationMaster)并像往常一样重新启动该应用程序。
阶段2:保持工作的RM重启
从Hadoop 2.6.0开始,我们进一步增强了RM重启功能,以解决在RM重启时不会杀死在YARN集群上运行的任何应用程序的问题。
除了在第1阶段已经完成的所有基础工作以确保应用程序状态的持久性并在恢复时重新加载该状态,阶段2主要侧重于重构YARN集群的整个运行状态,
其中大部分是状态RM内部调度程序跟踪所有容器的生命周期,应用程序的余量和资源请求,队列的资源使用等。这样,RM不需要终止AM并从头
开始重新运行应用程序它在第1阶段完成。应用程序可以简单地与RM重新同步,并从中断处继续。
RM利用从所有NM发送的容器状态来恢复其运行状态。当NM与重新启动的RM重新同步时,NM不会杀死容器。它继续管理容器,并在重新注册时将容器状态发送到RM。
RM通过吸收这些容器的信息来重建容器实例和相关应用程序的调度状态。与此同时,AM需要将未完成的资源请求重新发送给RM,因为RM可能会在关闭时丢失未完成的请求。
使用AMRMClient库与RM通信的应用程序编写者无需担心AM在重新同步时向RM重新发送资源请求的部分,因为它自动由库本身处理。
三、NodeManager Restart
1、介绍
本文档概述了NodeManager(NM)重启,该功能可以重新启动NodeManager,而不会丢失节点上运行的活动容器。在高级别,
NM在处理容器管理请求时将任何必要的状态存储到本地状态存储。当NM重新启动时,它通过首先加载各个子系统的状态然后让这些子系统使用加载的状态执行恢复来恢复。
ResourceManager HA、ResourceManagerRestart、NodeManager Restart配合使用比较好;
3.19 YARN HA架构及(RM/NM) Restart讲解的更多相关文章
- HAWQ集成Yarn HA作为资源管理服务
一.第一步当然是配置YARN HA,这在使用ambari管理时很简单,这里不在赘述. 二.建立HAWQ的专用资源队列queue 不要手工编辑scheduler设置,最方便的当然是使用queue man ...
- YARN的重启动问题:RM Restart/RM HA/Timeline Server/NM Restart
ResourceManger Restart ResourceManager负责资源管理和应用的调度,是YARN的核心组件,有可能存在单点失败的问题.ResourceManager Restart是使 ...
- YARN HA部署架构
hadoop001: zk rm(zkfc线程) nm hadoop002: zk rm(zkfc线程) nm hadoop003: zk nm RMStateStore: 存储在ZK的/rmstor ...
- Apache hadoop namenode ha和yarn ha ---HDFS高可用性
HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时 ...
- HDFS 和YARN HA 简介
HDFS: 基础架构 1.NameNode(Master) 1)命名空间管理:命名空间支持对HDFS中的目录.文件和块做类似文件系统的创建.修改.删除.列表文件和目录等基本操作. 2)块存储管理. 使 ...
- 初步掌握Yarn的架构及原理
1.YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性, ...
- 初步掌握Yarn的架构及原理(转)
1.YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性, ...
- YARN的架构及原理
1. YARN产生背景 MapReduce本身存在着一些问题: 1)JobTracker单点故障问题:如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了. 2)JobTrac ...
- Hadoop HA 架构
为什么要用集群? 企业里面,多台机器 伪分布式 每一个角色都是一个进程 HDFS: NN SNN DN YARN: RM NM 大数据所有组件, 都是主从架构 master-slave HDFS读写请 ...
随机推荐
- 轻松搞定RabbitMQ(二)——工作队列之消息分发机制
转自 http://blog.csdn.net/xiaoxian8023/article/details/48681987 上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门 ...
- 服务管理-tomcat
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在T ...
- Kubernetes对象之ReplicaSet
系列目录 说到ReplicaSet对象,得先说说ReplicationController(简称为RC).在旧版本的Kubernetes中,只有ReplicationController对象.它的主要 ...
- 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)
(2012-04-22 08:10:10) 标签: it 分类: 软件_Software Visual C++ 6.0 精简安装版(支持VA.ICC 等等安装) 2012-04-16 21:07 想找 ...
- CSS入门学习
一.What? CSS的全称是CascadingStyle Sheet,汉语意思是"级联样式表".通常又称为"风格样式表(StyleSheet)".它是用来进行 ...
- n&(n-1)的妙用
今天无聊拿起<编程之美>看了下,发现原来n&(n-1)还有很多妙用.n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进 ...
- 51NOD 1962 区间计数 单调栈+二分 / 线段树+扫描线
区间计数 基准时间限制:1.5 秒 空间限制:262144 KB 分值: 80 两个数列 {An} , {Bn} ,请求出Ans, Ans定义如下: Ans:=Σni=1Σnj=i[max{ ...
- Extjs-树 Ext.tree.TreePanel 动态加载数据
先上效果图 1.说明Ext.tree.Panel 控件是树形控件,大家知道树形结构在软件开发过程中的应用是很广泛的,树形控件的数据有本地数据.服务器端返回的数据两种.对于本地数据的加载,在extjs的 ...
- c# winform 根据窗体自动调整控件
一.概述 本文要实现的功能是:当窗体最大化时,控件的大小可以随窗体一起变化.开发环境,vs2010 c# winform,窗体名称采用默认的Form1. 2.把调整控件大小的方法放到一个类中:Form ...
- Dubbo Spring Cloud Motan
跨语言统一治理.Golang,谈谈另辟蹊径的开源RPC框架Motan_搜狐科技_搜狐网 https://www.sohu.com/a/207389967_467759