YARN
最初的思想是把hadoop1中的job tracker的功能拆分出来,
把它的资源管理与任务调度功能分成两个单独的进程.
yarn体系结构中有两个进程,resource manager和nodemanger
.
前者主要负责资源分配,后者nodemanager在每一个机器中都有一个进程,
负责container的创建,监控分配的资源(CPU,内存和磁盘与网络资源),同时
通过心跳汇报这些情况给RM.
applicationmaster是框架特定的作业进程,主要负责与RM申请资源与监控任务
执行的情况.运行在nodemanager上面.
包含两大组件,Scheduler和ApplicationManager.
Scheduler负责创建资源,这些资源基于队列与容量限制.
现在资源以容器的形式包装起来,如多少内存,多少个cpu core被定义成一个容器.
一个作业请求的时候分配多少个容器?
调度器具有可插拔的功能,来负责把集群的资源进行划分.现在主流的调度策略是
基于YARN的容量调度策略与基于FB的公平调度策略.

应用管理器主要负责作业的提交,并且负责协调第一个容器,第一个窗口是作业的
applicationmaster进程需要的,它还负责这个容器启动失败后的重启.appicationmaster
后期会向sheduler来协调作业运行需要的资源.

YARN支持资源保留机制,有时候需要运行特别重要的作业,或者某作业需要的容量比较大,
可会自动启用保留机制,预留一些cpu,内存资源供作业使用.
如何主动在代码中使用这个功能?

RM的重启,
早期的RM HA实现中,只做到了不保留工作的重启,即它只保留了作业的状态与
运行时所需安全证书等信息,然后重启之后,nm会杀死正在运行的container并重新注册到rm上,
相当于重新启动了整个yarn,只是不需要重新提交作业而已.
近两年已经实现了保留工作的RM重启,通过结合从NM,application master来重建容器状态,原来
运行的作业不需要在rm重启后被杀死重新运行,在重启或切换期间它们只是轮询尝试,对用户是透明的.
这些作业运行的元数据信息可能保存在HDFS上,也可以保存在数据库与ZOOKEEPER上,
主流的配置是ZOOKEERP,因为它可以支持RM的HA,主要是支持fencing来保证不脑裂,不让多个rm进程来
改写存储的内容,这是ZK的特定,它的节点可以用于分布式锁类似的功能.
基于文件或leveldb的存储都不支持fencing的功能.

<property>
<description>Enable RM to recover state after starting. If true, then
yarn.resourcemanager.store.class must be specified</description>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property> <property>
<description>The class to use as the persistent store.</description>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property> <property>
<description>Comma separated list of Host:Port pairs. Each corresponds to a ZooKeeper server
(e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002") to be used by the RM for storing RM state.
This must be supplied when using org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
as the value for yarn.resourcemanager.store.class</description>
<name>yarn.resourcemanager.zk-address</name>
<value>127.0.0.1:2181</value>
</property>

主要翻译自apache hadoop yarn官网

yarn 与 resource manager ha的更多相关文章

  1. Spark运行模式_基于YARN的Resource Manager的Custer模式(集群)

    使用如下命令执行应用程序: 和"基于YARN的Resource Manager的Client模式(集群)"运行模式,区别如下: 在Resource Manager端提交应用程序,会 ...

  2. Hadoop 管理工具HUE配置-Yarn Resource Manager HA配置

    安装HUE之后,需要配置很多东西才能将这个系统的功能发挥出来,因为Yarn是配置的HA模式,所以在配置HUE的时候,会有些不用,下面一段文字是官网拿来的 # Configuration for YAR ...

  3. Spark运行模式_基于YARN的Resource Manager的Client模式(集群)

    现在越来越多的场景,都是Spark跑在Hadoop集群中,所以为了做到资源能够均衡调度,会使用YARN来做为Spark的Cluster Manager,来为Spark的应用程序分配资源. 在执行Spa ...

  4. Hadoop Yarn配置项 yarn.nodemanager.resource.local-dirs探讨

    1. What is the recommended value for "yarn.nodemanager.resource.local-dirs"? We only have ...

  5. Yarn 集群环境 HA 搭建

    环境准备 确保主机搭建 HDFS HA 运行环境 步骤一:修改 mapred-site.xml 配置文件 [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/et ...

  6. Azure 新的管理模式 —— Resource Manager

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  7. Resource Manager

    Azure Resource Manager overview https://azure.microsoft.com/en-us/documentation/articles/resource-gr ...

  8. 在 Azure Resource Manager 模板中使用托管磁盘

    本文介绍使用 Azure Resource Manager 模板预配虚拟机时托管与非托管磁盘之间的差异. 这有助于将现有模板从使用非托管磁盘更新为使用托管磁盘. 我们将使用 101-vm-simple ...

  9. 在 Azure Resource Manager 中为虚拟机设置密钥保管库

    Note Azure 具有两种不同的部署模型,用于创建和处理资源:Resource Manager 模型和经典模型.本文介绍使用 Resource Manager 部署模型.Azure 建议对大多数新 ...

随机推荐

  1. 介绍MFC框架中涉及到的设计模式(二)

    接着上一篇<介绍MFC框架中涉及到的设计模式(一)>介绍 单例模式(Singleton Pattern) 单例模式是一种经常使用的软件设计模式.在它的核心结构中仅仅包括一个被称为单例类的特 ...

  2. Zabbix-3.0.3结合Grafana-3.1.0给你想要的绘图

    导读 Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器.Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 Open ...

  3. poj_2479 动态规划

    题目大意 给定一列数,从中选择两个不相交的连续子段,求这两个连续子段和的最大值. 题目分析 典型的M子段和的问题,使用动态规划的方法来解决. f[i][j] 表示将A[1...i] 划分为j个不相交连 ...

  4. pdb文件及引发的思考

    最初只想知道线上iis里需要不需要pdb文件,了解部分之后对于.net底层产生了浓厚的兴趣,看了一点点资料 资料来源: https://www.cnblogs.com/itech/archive/20 ...

  5. Linux上查看和修改字符集

    author :headsen chen date: 2018-05-14  16:20:30 一·查看字符集 字符集在系统中体现形式是一个环境变量,看当前终端使用字符集的有以下几种方式: 1: 1 ...

  6. 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射

    原创文章,欢迎转载.转载请注明:关东升的博客 Swift与Objective-C API映射 在混合编程过程中Swift与Objective-C调用是双向的,由于不同语言对于相同API的表述是不同的, ...

  7. LAMP集群项目二 初始化系统

    1.关闭防火墙 /etc/init.d/iptables stop chkconfig iptables off 2.关闭selinux cat /etc/selinux/config #查看状态 s ...

  8. SpringBoot--属性加载顺序

    属性加载顺序: 1.在命令行中传入的参数: 2.SPRING_APPLICATION_JSON中的属性:SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中内容: 3.j ...

  9. POJ1128 Frame Stacking(拓扑排序)

    题目链接:http://poj.org/problem?id=1128 题意:给你一个平面,里面有些矩形(由字母围成),这些矩形互相有覆盖关系,请从求出最底层的矩形到最上层的矩形的序列,如果存在多种序 ...

  10. android系统权限SET_PREFERRED_APPLICATIONS怎么获取

    最近自己写个demo,需要用到SET_PREFERRED_APPLICATIONS权限 在网上找了半天,大概有两种方式: 1. 将手机root后,把apk强行push到system/app目录下,重启 ...