概述:
RM是yarn中最重要的组件。但是只有一个RM,因此存在单点失败的问题。RM的重启有两种方式:
1.(Non-work-preserving RM restart) 不保留工作状态的重启
    这种情况下,RM把应用(application)的状态保存在一个插件化的state-store里,等RM重启后,RM重新加载这些状态,然后kick之前正在执行的任务,用户不必重新提交任务。

2.(work-preserving RM restart)保留工作状态的重启
    RM通过合并NM上的container状态和AM的container请求来重新任务状态。上面的情况不同的是,不需要kill之前正在执行的任务,任务在RM重启的时候可以继续执行。

特性:

Non-work-preserving RM restart:
    这种方式下,RM会在client提交工作时保存应用(application)的元数据(如ApplicationSubmissionContext)到插件化的state-store中,并且在任务执行完成后保存执行状态。此外,RM还保存应用的凭证信息(security keys、tokens)等。当RM宕机后,RM可会重新加载这些保存在state-store中的元数据,并且重新提交任务(不提交RM宕机前已经执行完成的)。
    nodeManagers和clients在RM宕机期间会轮询RM。RM重启后,会通过心跳(heartbeats)发出一个re-sync命令到所有的NM和AM上.NMs接收到re-sync命令后,会把自己节点上的所有containers都干掉,然后重新注册到RM(跟新的RM一样)。AMs接收到re-sync命令后,会shutdown。RM加载完元数据信息后,会为任务重建AM。在NMs和AMs接收到re-sync命令后,RM宕机时正在执行的任务就被kill掉了。

保存元数据->RM宕机->RM重启->发送re-sync到NMs->NMs kill containers,AMs shutdown->RM读取无数据->RM提交任务->RM 分配AM

Work-preserving RM restart:
    RM重建YARN集群状态,最重要的是重建scheduler的的状态,包括(containers’ life-cycle, applications’ headroom and resource requests, queues’ resource usage)containers的生命周期、应用程序的headroot、资源请求、队列的资源使用情况等。RM不用杀死正在执行的程序,在RM重启后,会继续这些暂停的任务。
    RM重新通过NMs发送的containers状态来重建集群。在RM宕机期间,NMs不会kill containers,并且继续维护containers的状态,在RM重启后,NMs会向RM重新注册,并发containers的状态。之后,AM需要重新发送后续的资源请求,因为在RM在宕机前可能就没有满足AM的资源请求。应用程序使用AMRMClient和RM通信而不必担心AM在RM re-synce时重新向RM请求资源。

注意:无论哪种方式,都需要一个state-store

配置:
四种state-store方式:zookeeper\hdfs\local file\db;其中zookeeper支持RM HA的恢复,其它不支持HA。

Enable RM Restart

Property Description
yarn.resourcemanager.recovery.enabled true

Configure the state-store for persisting the RM state

Property Description
yarn.resourcemanager.store.class The class name of the state-store to be used for saving application/attempt state and the credentials. The available state-store implementations areorg.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore, a ZooKeeper based state-store implementation andorg.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore, a Hadoop FileSystem based state-store implementation like HDFS and local FS. org.apache.hadoop.yarn.server.resourcemanager.recovery.LeveldbRMStateStore, a LevelDB based state-store implementation. The default value is set to org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore.

How to choose the state-store implementation

  • ZooKeeper based state-store: User is free to pick up any storage to set up RM restart, but must use ZooKeeper based state-store to support RM HA. The reason is that only ZooKeeper based state-store supports fencing mechanism to avoid a split-brain situation where multiple RMs assume they are active and can edit the state-store at the same time.

  • FileSystem based state-store: HDFS and local FS based state-store are supported. Fencing mechanism is not supported.

  • LevelDB based state-store: LevelDB based state-store is considered more light weight than HDFS and ZooKeeper based state-store. LevelDB supports better atomic operations, fewer I/O ops per state update, and far fewer total files on the filesystem. Fencing mechanism is not supported.

























四:ResourceManger Restart的更多相关文章

  1. yarn 单点故障 重启 ResourceManger Restart

    http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRestart.html Featur ...

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

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

  3. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  4. Hadoop官方文档翻译—— YARN ResourceManager High Availability 2.7.3

    ResourceManager High Availability (RM高可用) Introduction(简介) Architecture(架构) RM Failover(RM 故障切换) Rec ...

  5. How to remove replication in SyteLine V2

    以前曾经写了一篇<How to remove replication in Syteline>http://www.cnblogs.com/insus/archive/2011/12/20 ...

  6. 【Hadoop学习】Apache Hadoop ResourceManager HA

    简介 本向导简述了YARN资源管理器的HA,并详述了如何配置并使用该特性.RM负责追踪集群中的资源,并调度应用程序(如MapReduce作业).Hadoop2.4以前,RM是YARN集群中的单点故障. ...

  7. yarn资源管理器高可用性的实现

    资源管理器高可用性 . The ResourceManager (RM) is responsible for tracking the resources in a cluster, and sch ...

  8. ResourceManager High Availability

    Introduction This guide provides an overview of High Availability of YARN’s ResourceManager, and det ...

  9. 安装部署Apache Hadoop (本地模式和伪分布式)

    本节内容: Hadoop版本 安装部署Hadoop 一.Hadoop版本 1. Hadoop版本种类 目前Hadoop发行版非常多,有华为发行版.Intel发行版.Cloudera发行版(CDH)等, ...

随机推荐

  1. 竞赛题解 - Broken Tree(CF-758E)

    Broken Tree(CF-758E) - 竞赛题解 贪心复习~(好像暴露了什么算法--) 标签:贪心 / DFS / Codeforces 『题意』 给出一棵以1为根的树,每条边有两个值:p-强度 ...

  2. 分布式网上商城项目-solr搜索功能错误

    1.RuntimeException错误 java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid ...

  3. wireshark利用正则表达式过滤http协议中的jpg png zip等无用的数据包

    主要工具:小度随身wifi热点 + wireshark抓包工具.(强烈不建议使用360的产品,非常垃圾,而且干扰代理#墙IP,搞得你不能***) 利用wireshark这个强大的协议分析利器.去分析某 ...

  4. ACM 2003~2005

    ACM 2003 求实数的绝对值 import java.util.Scanner; public class Lengxc { public static void main(String[] ar ...

  5. AML与PIO整合问题

    要想把PIO引擎封装成AML组件,面临如下问题(逐渐补充): 1)版本不兼容 内容项 AML PIO 选型 兼容? JDK 1.7 1.8 1.8 是 SPARK 1.6.1 2.1.1     HA ...

  6. XSS攻击 && CSRF攻击 基础理解

    一个网站,不管多么的帅气,多么的风骚,如果你不安全,那始终都是一个弟弟啊~ 今天又看了下XSS和CSRF攻击的文章,我也想发点什么普及下大家的安全意识,毕竟作为一名拥有伟大梦想的程序员,基本的安全意识 ...

  7. 史上更全的 MySQL 高性能优化实战总结!

    1 前言 2 优化的哲学 3 优化思路 3.1 优化什么 3.2 优化的范围有哪些 3.3 优化维度 4 优化工具有啥? 4.1 数据库层面 4.2 数据库层面问题解决思路 4.3 系统层面 4.4 ...

  8. QWebView 与Js 交互

    我本愚钝,在网上搜了一下没找到可以运行的栗子,遂在这记录一下吧. 环境:win10 64位系统  qt 4.8.7 (mingw32) qtcreator(4.5.0) 1. 建立一个 Widgets ...

  9. python Tkinter 的 Text 保持焦点在行尾

    https://bbs.csdn.net/topics/390712532 text.see(END)

  10. AtCoder Regular Contest 100 E - Or Plus Max

    一道很好的dp题 dp[K]存的是 i满足二进制1属于K二进制1位置 最大的两个Ai 这样dp[K]统计的两个数肯定满足(i | j) <= K 然后不断做 update(dp[i | (1&l ...