YARN将共享存储系统抽象成RMStateStore,以保存恢复ResouceManager所必须的信息,包括:
    Application状态信息ApplicationState。内部包含应用程序提交描述信息context、提交时间submitTime、拥有者user三个字段
    Application对应的每个ApplicationAttempt信息ApplicationAttemptState。内部包含attemptId、所在Container的信息masterContainer、安全Token三个字段
    安全令牌相关信息RMDTSecretManagerState。内部包含delegateionTokenState、masterKeyState、dtSequenceNumber三个字段
        ResouceManager并不会保存已经分配给每个ApplicationMaster的资源信息和每个NodeManager的资源使用信息,这些均可通过相应的心跳汇报机制重构出来,也正因如此,ResouceManager HA的实现是非常轻量级的。
        ResouceManager提供了四种RMStateStore实现(管理员可通过参数yarn.resourcemanager.store.class设置采用的RMStateStore实现类),分别是NullRMStateStore(不存储任何状态信息,在不启动恢复机制时,它是默认实现的)、MemoryRMStateStore(将状态信息存储到内存中,在启用恢复机制时,它是默认实现的)、FileSystemRMStateStore(将状态信息存储到HDFS中)、ZKRMStateStore(将状态信息存储到zookeeper中),从目前来看YARN HA最佳实践是采用基于ZKRMStateStore的共享存储方案
    目前ResouceManager的容错机制涉及到的流程有
    1、ResouceManager收到客户端发送的提交应用程序请求后,在相应之前,会将应用程序的”application submission context”同步保存下来。这个有2点好处
        这样可确保一旦客户端成功提交应用程序后,无论何时重启,ResouceManager均有足够的信息将应用程序恢复出来。
        考虑到用户提交应用程序的频率很低,且ClientRMService使用了一个独立的RPC通道,因此同步记录信息不会产生太大的性能开销
    2、当一个新的应用程序运行实例被创建时,它的基本信息和之前失败的运行实例信息将被保存下来
        当ResouceManager重启后,它需要获之前失败的应用程序实例ID以产生一个新的运行实例ID
        相关信息将被异步记录下来,这主要是考虑到相关事件由中央异步调度器AsyncDispatcher处理,而同步记录日志会造成性能问题
    3、当一个应用程序运行结束后,它保存的信息将被移除,考虑到性能问题,该过程是异步进行的
    4、ResouceManager重启后,它首先将之前保存的数据加载到内存中,这些信息将用于构建RMApp对象和创建新的运行实例RMAppAttempt。之后,内部服务将被启动,所有操作照旧进行
        重启ResouceManager收到NodeManager汇报的心跳后,发现该NodeManager并不存在,则要求他重新启动,这样它上面运行的container将被杀死
        重启的ResouceManager收到ApplicationMaster汇报的心跳后,发现心跳中涉及的运行实例ID并不存在,从而会向ApplicationMaster发送一个RemoteException异常,这将导致ApplicationMaster异常退出
        NodeManager重启并向ResouceManager注册,新的运行实例将被启动,接下来所有操作照旧进行

YARN HA实现和原理相关推荐

  1. 搭建hadoop2.6.0 HA及YARN HA

    以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP ...

  2. 【视频】详解HDFS的HA高可用原理

    详解HDFS的HA高可用原理

  3. flink on yarn HA高可用集群搭建

    无论以什么样的模式提交Application到Yarn中运行,都会启动一个yarn-session(Flink 集群),依然是由JobManager和TaskManager组成,那么JobManage ...

  4. Flink on yarn (HA)测试

      前面已经介绍了Flink on yarn的相关部署,在yarn当中,启动Flink有两种模式,分别是客户端模式和分离式,下面将介绍Flink on yarn HA是如何在宕机后,重启Flink及k ...

  5. hadoop集群的yarn ha配置,亲测

    YARN HA部署 yarn-site.xml文件:<!--启用resourcemanager ha--><property><name>yarn.nodemana ...

  6. Yarn HA 原理

    RMStateStore : 存储在Zookeeper的/rmstore目录 ResourceManager: RecourseManager中有ZKFC线程 启动的时候会向zk的/rmstore中写 ...

  7. YARN应用场景、原理与资源调度

    1.Hadoop YARN产生背景 源于MapReduce1.0 运维成本 如果采用"一个框架一个集群"的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需 ...

  8. hadoop3节点hdfs ha,yarn ha配置

    2019独角兽企业重金招聘Python工程师标准>>> 0 各机器职责 进程 node1 node2 node3 NN NameNode 1 1 DN DateNode 1 1 1 ...

  9. Apache Flink 1.14.4 on yarn ha环境搭建

    Flink支持多种安装模式 Local-本地单机模式,学习测试时使用 Standalone-独立集群模式,Flink自带集群,开发测试环境使用 StandaloneHA-独立集群高可用模式,Flink ...

最新文章

  1. 对称非对称算法混合加密实战(DES和AES混合加密)
  2. ie6/IE8/IE9/谷歌以及火狐等浏览器下li 高度一致解决办法
  3. oracle spfile和pfile文件
  4. 在MySQL数据库上使用Quartz Scheduler入门
  5. Dev C++安装第三方库boost
  6. 3d打印光固化好还是热固化好_UV专利一览(71) —天啦噜!3D打印上太空!
  7. 计算机组成原理 参考,计算机组成原理参考练习
  8. 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
  9. 基于yolov3和pythorch框架的火焰识别检测算法
  10. 基于PaddleHub实现简易人像抠图
  11. c语言要计算20,用C语言计算1~20的阶乘之和
  12. 可编辑的电子海图系统功能拓展与应用
  13. 三种Moran's I(空间自相关性) 之我见
  14. 双人对战的球类游戏ios源码
  15. 关于Team Building
  16. 用Python分析44万条数据,揭秘如何成为网易云音乐评论区的网红段子手
  17. 多多视频带货快速出单小技巧!
  18. 算术表达式求值演示(C/C++实现)
  19. PowerDesigner16.5 生成MySQL 数据库模型
  20. 别说我没告诉你,真心推荐4款免费动画制作软件

热门文章

  1. 竟然有这么多方法可以获得iphone5C的数据,FBI你高兴不?
  2. Visual Studio2017自动生成的#include“stdafx.h”详解及解决方案
  3. JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
  4. linux java amr转mp3,微信语音Linux-centos下ffmpeg安装如何amr转mp3播放
  5. ELMO and BERT
  6. 怎么开发一个自助打印机小程序
  7. PHP魔鬼训练第二季,设计模式,注册树模式,模版模式,HTTP响应过程,多进程
  8. Firewalld报:WARNING: AllowZoneDrifting is enabled
  9. linux udev详解
  10. 皮质层特异性标志物——RELN抗体参数说明