RM作为master管理着所有的集群资源,它会和NM和特定application的AM共同工作
1. NodeManagers
NM从RM中获得指令,并管理着单节点上可用资源
2. ApplicationMasters
负责和RM协调,然后通知NM来启动资源容器


RM有如下部件:
1. RM和客户端交互的部件
ClientRMService

RM的client接口,处理client端的RPC请求,比如提交application,强制杀死application,获得Queue信息,集群metrics

AdminService
单独的管理员客户端接口,比如refreshNodes,refreshUserToGroupsMappings等.

2. RM和NM交互的部件
ResourceTrackerService
负责响应NM过来的RPC请求,比如注册NM,拒绝不合法或者decommissioned节点请求,获得NM心跳信息并传递给事件处理器YarnScheduler。每次heartbeat会调用nodesListManager和 nmLivelinessMonitor组件

NMLivelinessMonitor
跟踪活跃的节点,并且记录挂掉的节点。该部件会记录每个节点最后一次心跳时间,任何节点如果在一定时间内没有心跳信息(默认是10分钟)会被认为已经挂了并被标记为expired node,新的container不会被分配到expired node.

NodesListManager
维护了include和exclude的NM列表信息,初始化时会读入yarn.resourcemanager.nodes.include-path和yarn.resourcemanager. nodes.exclude-path指定的两个文件。集群启动后也可以通过AdminService来动态refresh nodes

3. RM和AM交互的部件
ApplicationMasterService
AM向RM请求RPC的服务 ,AM可以注册或者注销,从RM中获得资源容器

AMLivelinessMonitor
这个部件在ApplicationMasterService中,AM在注册/注销和申请资源的时候都会调用(receivedPing方法 ),它负责记录每个AM最后一次心跳时间 ,若在规定间隔内NM未反馈心跳(默认10分钟),则NM被认为已经挂了,并被AM移除。所有这个AM上已经分配和正在执行的资源容器都会被标记为dead,RM Scheduler会重新调度AM到一个新的容器中,默认最多会尝试4次

RM的核心部件 - 调度器和相关部件
RMAppManager
负责维护提交的applications,信息存放到RMContext中, 同时会cache已经完成的application,用户可以通过WebUI或者命令行来查看

ApplicationACLsManager
维护每个应用的ACL列表,在杀死应用,查看应用信息的时候会检查ACL authorization

ApplicationMasterLauncher
内部有一个线程池来启动AM (新提交的或者之前由于某种原因失败了的),
如果application正常停止或者强制kill掉后会负责清理AM

YarnScheduler
Scheduler负责分配资源,它是基于application资源需求的分配策略,比如CPU,内存,网络,磁盘等

ContainerAllocationExpirer
负责保证所有分配给AM的容器都会被相应的NM启动起来了。由于AM有可能在得到资源后不启动,这会造成集群利用率的降低,所以ContainerAllocationExpirer会保持已经分配但是还未被NM启动的container列表。对于任何一个container,如果在一定的时间内(默认10分钟) NM未汇报给RM它已经被启动了,则该container会被认为已经过期了
 
参考:



ResourceManager架构解析的更多相关文章

  1. HDFS 架构解析

    本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...

  2. Magento的基本架构解析

    Magento的基本架构解析 magento 是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为 zend框架提供了面向对象的代码库并且有很 ...

  3. Hadoop工程包架构解析

    Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述    Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...

  4. uC/OS-II内核架构解析(1)---嵌入式RTOS(转)

    uC/OS-II内核架构解析(1)---嵌入式RTOS 1. 嵌入式系统基本模型 2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性.即在任何情况下,在系统运行的任何时刻,OS的资 ...

  5. OpenStack最新版本Folsom架构解析

    OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...

  6. ARM架构解析

    ARM架构解析 (2014-11-23 21:56:53) 转载▼ 标签: francis_hao arm架构 arm核 soc 分类: MCU 先来谈一下ARM的发展史:1978年12月5日,物理学 ...

  7. 后端分布式系列:分布式存储-HDFS 架构解析

    本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...

  8. PrismCDN 网络的架构解析,以及低延迟、低成本的奥秘

    5 月 19.20 日,行业精英齐聚的 WebRTCon 2018 在上海举办.又拍云 PrismCDN 项目负责人凌建发在大会做了<又拍云低延时的 WebP2P 直播实践>的精彩分享. ...

  9. 深入HBase架构解析(二)【转】

    转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...

随机推荐

  1. android之IntentFilter的用法_Intent.ACTION_TIME_TICK在manifest.xml不起作用

    在模仿一个天气预报的widget时候,用到了IntentFilter,感觉在manifest.xml注册的receiver跟用代码写registerReceiver()的效果应该是相同的,于是想证明一 ...

  2. 又见拦截导弹(LIS)

    又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系 ...

  3. NYOJ-开灯问题

    开灯问题 时间限制:3000 ms  |  内存限制:65535 KB 难度: 描写叙述 有n盏灯,编号为1~n.第1个人把全部灯打开,第2个人按下全部编号为2 的倍数的开关(这些灯将被关掉),第3  ...

  4. C++部分术语(Terms)

    翻译自msdn,如有不妥当的地方,欢迎指正. 声明(Declaration):声明引入了一个名字以及其类型进入程序中,并没有定义一个相关的对象或者函数.然而,很多声明都作为定义使用.   定义(def ...

  5. SUSAN检测算子

    USAN区域(核同值区):和核像素的灰度相同会相信的模板像素的区域. 利用这个区域的尺寸.重心.二阶矩等可以帮助检测图像的边缘和角点.利用USAN的面积作为特征可以起到增强边缘和角点的效果. 该方法不 ...

  6. BZOJ 2212: [Poi2011]Tree Rotations( 线段树 )

    线段树的合并..对于一个点x, 我们只需考虑是否需要交换左右儿子, 递归处理左右儿子. #include<bits/stdc++.h> using namespace std; #defi ...

  7. 三个API:开启、关闭、关闭线程重定向

    C:\Windows\sysnative\ 这个目录是作什么用的?来源:互联网 责任编辑:小易 时间:2015/11/13 0:17:19用户提出问题:C:\Windows\sysnative\ 这个 ...

  8. 自定义类似QMutexLocker的CMutexLocker

    最近做项目遇到一个需求,有一个buttonSlot()执行要耗点时间,为了防止用户无限制的乱点出现问题,考虑加一个互斥锁,使得每次执行完后才允许执行下一次.大概意思是: //QMutex  m_mut ...

  9. 基于visual Studio2013解决C语言竞赛题之0906文件插入

       题目

  10. MFC:重绘Button,定制CButton,自画CPngButton,求赐教(各种bug包括性能bug)谢谢谢谢

    [1.]CPngButton.h(资源是最后图片) #pragma once #include<atlimage.h> #define PNUM 19 #define PLAYTIME 1 ...