YARN HA实现和原理
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实现和原理相关推荐
- 搭建hadoop2.6.0 HA及YARN HA
以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP ...
- 【视频】详解HDFS的HA高可用原理
详解HDFS的HA高可用原理
- flink on yarn HA高可用集群搭建
无论以什么样的模式提交Application到Yarn中运行,都会启动一个yarn-session(Flink 集群),依然是由JobManager和TaskManager组成,那么JobManage ...
- Flink on yarn (HA)测试
前面已经介绍了Flink on yarn的相关部署,在yarn当中,启动Flink有两种模式,分别是客户端模式和分离式,下面将介绍Flink on yarn HA是如何在宕机后,重启Flink及k ...
- hadoop集群的yarn ha配置,亲测
YARN HA部署 yarn-site.xml文件:<!--启用resourcemanager ha--><property><name>yarn.nodemana ...
- Yarn HA 原理
RMStateStore : 存储在Zookeeper的/rmstore目录 ResourceManager: RecourseManager中有ZKFC线程 启动的时候会向zk的/rmstore中写 ...
- YARN应用场景、原理与资源调度
1.Hadoop YARN产生背景 源于MapReduce1.0 运维成本 如果采用"一个框架一个集群"的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需 ...
- hadoop3节点hdfs ha,yarn ha配置
2019独角兽企业重金招聘Python工程师标准>>> 0 各机器职责 进程 node1 node2 node3 NN NameNode 1 1 DN DateNode 1 1 1 ...
- Apache Flink 1.14.4 on yarn ha环境搭建
Flink支持多种安装模式 Local-本地单机模式,学习测试时使用 Standalone-独立集群模式,Flink自带集群,开发测试环境使用 StandaloneHA-独立集群高可用模式,Flink ...
最新文章
- 对称非对称算法混合加密实战(DES和AES混合加密)
- ie6/IE8/IE9/谷歌以及火狐等浏览器下li 高度一致解决办法
- oracle spfile和pfile文件
- 在MySQL数据库上使用Quartz Scheduler入门
- Dev C++安装第三方库boost
- 3d打印光固化好还是热固化好_UV专利一览(71) —天啦噜!3D打印上太空!
- 计算机组成原理 参考,计算机组成原理参考练习
- 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
- 基于yolov3和pythorch框架的火焰识别检测算法
- 基于PaddleHub实现简易人像抠图
- c语言要计算20,用C语言计算1~20的阶乘之和
- 可编辑的电子海图系统功能拓展与应用
- 三种Moran's I(空间自相关性) 之我见
- 双人对战的球类游戏ios源码
- 关于Team Building
- 用Python分析44万条数据,揭秘如何成为网易云音乐评论区的网红段子手
- 多多视频带货快速出单小技巧!
- 算术表达式求值演示(C/C++实现)
- PowerDesigner16.5 生成MySQL 数据库模型
- 别说我没告诉你,真心推荐4款免费动画制作软件
热门文章
- 竟然有这么多方法可以获得iphone5C的数据,FBI你高兴不?
- Visual Studio2017自动生成的#include“stdafx.h”详解及解决方案
- JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
- linux java amr转mp3,微信语音Linux-centos下ffmpeg安装如何amr转mp3播放
- ELMO and BERT
- 怎么开发一个自助打印机小程序
- PHP魔鬼训练第二季,设计模式,注册树模式,模版模式,HTTP响应过程,多进程
- Firewalld报:WARNING: AllowZoneDrifting is enabled
- linux udev详解
- 皮质层特异性标志物——RELN抗体参数说明