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. 系统之间通讯方式—SOAP(web service)

    [web service 简介] 是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web调用.web service是一个应用组件,它逻辑性的为其他应用程序提供数据与 ...

  2. CentOS7 minimal下MySQL安装

    http://www.linuxidc.com/Linux/2016-12/137942.htm 首先要使用root用户登录 卸载: 1.卸载原有程序 yum remove mysql mysql-s ...

  3. Redesign Your App for iOS 7 之 页面布局

    Redesign Your App for iOS 7 之 页面布局 http://www.vinqon.com/codeblog/?detail/11109

  4. 逐一取Map值

    String[] mKeys = starDetil.getRows().keySet().toArray(new String[starDetil.getRows().size()]); starD ...

  5. [ Office 365 开发系列 ] 身份认证

    前言 本文完全原创,转载请说明出处,希望对大家有用. 通常我们在开发一个应用时,需要考虑用户身份认证及授权,Office 365使用AAD(Azure Active Directory)作为其认证机构 ...

  6. 使用 paramsPrepareParamsStack 拦截器栈后的运行流程

    2. 使用 paramsPrepareParamsStack 拦截器栈后的运行流程 1). paramsPrepareParamsStack 和 defaultStack 一样都是拦截器栈. 而 st ...

  7. android开发时程序出现崩溃问题

    原因:项目目录下的:src与gen中的包名不一致时,出现问题 <manifest xmlns:android="http://schemas.android.com/apk/res/a ...

  8. TCP implements its own acknowledgment scheme to guarantee successful data delivery

    wTCP本身已经确保传输的成功性. HTTP The Definitive Guide 4.2.4 Delayed Acknowledgments Because the Internet itsel ...

  9. QuantStart量化交易文集

    Over the last seven years more than 200 quantitative finance articles have been written by members o ...

  10. Python 面向对象进阶(二)

    1. 垃圾回收 小整数对象池 Python对小整数的定义是 [-5, 257),这些整数对象是提前建立好的; 在一个Python程序中,所有位于这个范围内的整数,使用的都是同一个对象; 单个字符共用对 ...