`

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

 
阅读更多
在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管理

NMLivelinessMonitor

监控NM是否活着,如果一个NodeManager在一定时间(默认为10min)内未汇报心跳信息,则认为它死掉了,会将其从集群中移除。

NodesListManager

维护正常节点和异常节点列表,管理exlude(类似于黑名单)和inlude(类似于白名单)节点列表,这两个列表均是在配置文件中设置的,可以动态加载。

ResourceTrackerService

处理来自NodeManager的请求,主要包括两种请求:注册和心跳,其中,注册是NodeManager启动时发生的行为,请求包中包含节点ID,可用的资源上限等信息,而心跳是周期性 行为,包含各个Container运行状态,运行的Application列表、节点健康状况(可通过一个脚本设置),而ResourceTrackerService则为NM返回待释放的Container列表、Application列表等。

AM管理

AMLivelinessMonitor

监控AM是否活着,如果一个ApplicationMaster在一定时间(默认为10min)内未汇报心跳信息,则认为它死掉了,它上面所有正在运行的Container将被认为死亡,AM本身会被重新分配到另外一个节点上(用户可指定每个ApplicationMaster的尝试次数,默认是1次)执行。

ApplicationMasterLauncher

与NodeManager通信,要求它为某个应用程序启动ApplicationMaster。

ApplicationMasterService

处理来自ApplicationMaster的请求,主要包括两种请求:注册和心跳,其中,注册是ApplicationMaster启动时发生的行为,包括请求包中包含所在节点,RPC端口号和tracking URL等信息,而心跳是周期性 行为,包含请求资源的类型描述、待释放的Container列表等,而AMS则为之返回新分配的Container、失败的Container等信息。

Application管理

ApplicationACLsManager

管理应用程序访问权限,包含两部分权限:查看和修改,查看主要指查看应用程序基本信息,而修改则主要是修改应用程序优先级、杀死应用程序等。

RMAppManager

管理应用程序的启动和关闭。

ContainerAllocationExpirer

YARN不允许AM获得Container后长时间不对其使用,因为这会降低整个集群的利用率。当AM收到RM新分配的一个Container后,必须在一定的时间(默认为10min)内在对应的NM上启动该Container, 否则,RM会回收该Container。

安全管理

ResourceManage自带了非常全面的权限管理机制,主要由ClientToAMSecretManager、ContainerTokenSecretManager、ApplicationTokenSecretManager等模块完成。

资源分配

ResourceScheduler

ResourceScheduler是资源调度器,它按照一定的约束条件(比如队列容量限制等)将集群中的资源分配给各个应用程序,当前主要考虑内存资源,在3.0版本中将会考虑CPU(https://issues.apache.org/jira/browse/YARN-2)。ResourceScheduler是一个插拔式模块,默认是FIFO实现,YARN还提供了Fair Scheduler和Capacity Scheduler两个多租户调度器。

分享到:
评论

相关推荐

    YARN(MRv2)搭建

    YARN(MRv2)搭建

    yarn-v0.23.2.tar.gz

    yarn-v0.23.2.tar.gz 在安装ambari,源码编译的时候下载的文件有问题 手动下载 地址 https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz

    Hadoop技术内幕深入解析YARN架构设计与实现原理PDF

    《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源...

    Cloudera的yarn任务监控api

    首先,我们关注YARN的Resource Manager API。Resource Manager是YARN中的核心组件,负责全局资源管理和调度。通过`Cluster Information API`,开发者可以获取集群的基本状态和元数据。例如,通过访问`http://<rm ...

    Hadoop技术内幕:深入Yarn架构设计与实现原理

    《Hadoop技术内幕:深入Yarn架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源管理...

    《Hadoop技术内幕深入解析YARN架构设计与实现原理》.(董西成).[PDF]@ckook

    2. **YARN架构**:YARN由全局ResourceManager(RM)、节点Manager(NM)、ApplicationMaster(AM)和Container组成。RM负责整个集群的资源分配,NM管理单个节点的资源,AM负责应用程序的执行,Container是资源分配的...

    董西城-Hadoop技术内幕-深入理解YARN架构设计与实现原理----带完整书签--完整版共394页

    《董西城-Hadoop技术内幕-深入理解YARN架构设计与实现原理》是一部全面解析Hadoop生态系统中YARN(Yet Another Resource Negotiator)核心组件的专业著作。这本书详细介绍了YARN的架构、设计思想以及实现机制,旨在...

    Flink on Yarn_K8S原理剖析及实践.pdf

    Apache Flink是一个开源的分布式流处理框架,用于在...通过这些资源,用户可以深入了解Flink在分布式环境中的运行机制,掌握在YARN/K8S平台上部署Flink集群的最佳实践,并对Flink的核心概念和技术细节有更全面的认识。

    【自动化脚本】自动启动hdfs/yarn/spark HA集群

    脚本功能:启动集群 前提:配置好执行脚本的主机到其他主机的ssh登录 ...hadoop3还是RM;hadoop4、5、6是DN、NM、Spark Worker。编辑完成后在满足“前提”的任意一台主机运行均可。 脚本声明:原创——By BlackValley

    Hadoop技术-YARN的基本架构.pptx

    总结来说,YARN的基本架构是通过Resource Manager、Node Manager、Application Master和Container这四个关键组件,实现了分布式计算环境中的资源管理和任务调度。这种架构有效地解耦了资源管理和计算任务的执行,...

    yarn架构与讲解

    ### YARN架构与详解 #### 一、YARN概述 ...通过上述内容,我们可以深入了解YARN的架构及其资源调度机制,同时掌握Shuffle阶段的关键技术和优化方法。这些知识对于提高Hadoop集群的效率和性能至关重要。

    Hadoop技术内幕深入解析YARN架构设计与实现原理

    Hadoop技术内幕深入解析YARN架构设计与实现原理

    Hadoop技术内幕深入解析YARN架构设计与实现原理.(董西成).PDF

    《Hadoop技术内幕深入解析YARN架构设计与实现原理》.(董西成).PDF

    Yarn架构解析1

    首先,YARN架构主要包括三个主要组件:Resource Manager(资源管理器)、Node Manager(节点管理器)和Application Master(应用程序管理器)。 1. **Resource Manager (RM)** 是整个集群的全局资源管理者,负责...

    Hadoop技术内幕深入解析YARN架构设计与实现原理.董西成

    《Hadoop技术内幕深入解析YARN架构设计与实现原理》是由董西成撰写的一本专著,主要聚焦于Hadoop生态系统中的YARN(Yet Another Resource Negotiator)框架。这本书详细阐述了YARN的架构设计原则、核心组件以及其...

    Hadoop YARN 基本架构和发展趋势 - d.pdf

    Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop项目中的一个核心组件,它的设计目标是解决早期Hadoop 1.x版本中MapReduce(MRv1)存在的问题,包括扩展性限制、单点故障以及对其他计算框架支持不足...

    2013-Apache Hadoop YARN_ Yet Another Resource Negotiator.pdf

    ### Apache Hadoop YARN:Yet Another Resource Negotiator #### 概述 Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的一个关键组件,它为Hadoop提供了资源管理和作业调度的能力。...

    YARN学习书籍及注解

    1. **YARN架构**:YARN将原本Hadoop 1.x中的JobTracker职责拆分为Resource Manager(RM)和Application Master(AM)。RM负责全局资源管理,而AM则为每个应用程序协调任务执行。 2. **ResourceManager(RM)**:RM...

Global site tag (gtag.js) - Google Analytics