一、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讲解的更多相关文章

  1. HAWQ集成Yarn HA作为资源管理服务

    一.第一步当然是配置YARN HA,这在使用ambari管理时很简单,这里不在赘述. 二.建立HAWQ的专用资源队列queue 不要手工编辑scheduler设置,最方便的当然是使用queue man ...

  2. YARN的重启动问题:RM Restart/RM HA/Timeline Server/NM Restart

    ResourceManger Restart ResourceManager负责资源管理和应用的调度,是YARN的核心组件,有可能存在单点失败的问题.ResourceManager Restart是使 ...

  3. YARN HA部署架构

    hadoop001: zk rm(zkfc线程) nm hadoop002: zk rm(zkfc线程) nm hadoop003: zk nm RMStateStore: 存储在ZK的/rmstor ...

  4. Apache hadoop namenode ha和yarn ha ---HDFS高可用性

    HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时 ...

  5. HDFS 和YARN HA 简介

    HDFS: 基础架构 1.NameNode(Master) 1)命名空间管理:命名空间支持对HDFS中的目录.文件和块做类似文件系统的创建.修改.删除.列表文件和目录等基本操作. 2)块存储管理. 使 ...

  6. 初步掌握Yarn的架构及原理

    1.YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性, ...

  7. 初步掌握Yarn的架构及原理(转)

    1.YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性, ...

  8. YARN的架构及原理

    1. YARN产生背景 MapReduce本身存在着一些问题: 1)JobTracker单点故障问题:如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了. 2)JobTrac ...

  9. Hadoop HA 架构

    为什么要用集群? 企业里面,多台机器 伪分布式 每一个角色都是一个进程 HDFS: NN SNN DN YARN: RM NM 大数据所有组件, 都是主从架构 master-slave HDFS读写请 ...

随机推荐

  1. CentOS 6.4安装Puppet

    CentOS安装Puppet   环境介绍:centos6.4x64 採用CentOS-6.4-x86_64-minimal.iso最小化安装   puppet版本号3.6.2.ruby1.8.7,f ...

  2. MySQL 导入导出命令(转载)

    导出数据: mysqldump --databases -u root -p密码 数据库名> /root/guogl/XXX.sql 从sql文件导入数据: mysql -u root -p密码 ...

  3. mysql-connector-java与mysql版本的对应

    记录下mysql-connector-java与mysql版本的对应关系,已方便以后参考,这是最新版本对应, 时间:2017年5月23日 官网文档地址: https://dev.mysql.com/d ...

  4. EasyHLS实现将IPCamera摄像机的RTSP流转成HLS(ts+m3u8)直播输出

    本文转自:http://www.cnblogs.com/babosa/p/6033039.html EasyHLS EasyHLS是EasyDarwin开源流媒体团队开发的一款HLS打包库,接口非常简 ...

  5. EasyDarwin开源流媒体云平台支持EasyCamera摄像机、EasyCamera手机直播监控、EasyNVR等多终端接入

    云平台架构 EasyDarwin开源流媒体云平台目前已经包括了EasyCMS中心管理服务.EasyDarwin流媒体服务.EasyCamera设备端(支持Arm_Linux.Android.PC).E ...

  6. 传递一个父id返回所有子id的用法,可用于删除父级以下的所有子级

    先在common文件夹建立一个function.php文件,然后写一个递归函数,传递一个父id返回所有子id,如下: function getChildrenId($node,$pid){ $arr= ...

  7. 6 Maven聚合与集成

    Maven的聚合特性能够把项目的各个模块聚合在一起构件,而Maven的继承特性能够帮助抽取各个模块相同的依赖和插件等配置,简化POM的同时,还能促进各个模块配置的一致性.     1.聚合     为 ...

  8. linux source命令与sh shell scripts的区别

    source FileName 作用:在当前bash环境下读取并执行FileName中的命令. 注:该命令通常用命令“.”来替代. 如:source .bash_rc 与 . .bash_rc 是等效 ...

  9. xml 基础属性

    xml属性 对应的方法 说明 android:alpha setAlpha(float) 设置组件的透明度(0——1) android:background setBackgroundResource ...

  10. 模仿yui将css和js打包,加速网页速度

    如果你有机会用firebug看看自己网站的网络请求,你会发现请求数量之多超乎你的想象.为减少这个数量,有许多技术方案.比如yui的combo,会将所有需要的js混合成一个文件下载,现代web服务器好像 ...