YARN/MRv2

YARN/MRv2 Resource Manager深入剖析—RM总体架构

我们两清 提交于 2019-12-02 04:44:11
在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)。 ResourceManager主要由以下几个部分组成: 用户交互 YARN分别针对普通用户,管理员和Web提供了三种对外服务,分别对应ClientRMService、AdminService和WebApp: ClientRMService ClientRMService是为普通用户提供的服务,它会处理来自客户端各种RPC请求,比如提交应用程序、终止应用程序,获取应用程序运行状态等。 AdminService YARN为管理员提供了一套独立的服务接口,以防止大量的普通用户请求使管理员发送的管理命令饿死,管理员可通过这些接口管理集群,比如动态更新节点列表,更新ACL列表,更新队列信息等。 WebApp 为了更加友好地展示集群资源使用情况和应用程序运行状态等信息,YARN对外提供了一个Web 界面,这一部分是YARN仿照haml( http://haml.info/ )开发的一个轻量级嵌入式Web框架。具体讨论见: https://issues.apache.org/jira/browse/MAPREDUCE-2399 NM管理

YARN/MRv2 Resource Manager深入剖析—资源调度器

社会主义新天地 提交于 2019-12-01 00:10:48
在YARN中,资源调度器(ResourceScheduler)是一个非常核心的部件,它负责将各个节点上的资源封装成container,并按照一定的约束条件(按队列分配,每个队列有一定的资源分配上限等)分配给各个application。 ( 注意:本文分析基于hadoop-2.0.3-alpha ) YARN的资源管理器实际上是一个事件处理器,它需要处理来自外部的6种SchedulerEvent类型的事件,并根据事件的具体含义进行相应的处理。这6种事件含义如下: (1) NODE_REMOVED 事件NODE_REMOVED表示集群中被移除一个计算节点(可能是节点故障或者管理员主动移除),资源调度器收到该事件时需要从可分配资源总量中移除相应的资源量。 (2) NODE_ADDED 事件NODE_ADDED表示集群中增加了一个计算节点,资源调度器收到该事件时需要将新增的资源量添加到可分配资源总量中。 (3)APPLICATION_ADDED 事件APPLICATION_ADDED 表示ResourceManager收到一个新的Application。通常而言,资源管理器需要为每个application维护一个独立的数据结构,以便于统一管理和资源分配。资源管理器需将该Application添加到相应的数据结构中。 (4)APPLICATION_REMOVED 事件APPLICATION