YARN工作原理简述

YARN由ResourceManager、ApplicationMaster、NodeManager和Container组成。ResourceManager作为全局资源管理器,调度器根据资源限制分配Container。ApplicationMaster负责任务调度与监控,NodeManager管理节点上的资源和任务,Container是动态资源分配单位。YARN工作流程包括客户端提交程序、RM分配资源、AM启动和任务执行。提交作业后,可使用`yarn application -list`检查AM状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、YARN的组成

          YARN由四大部分组成:ResourceManager、NodeManager、Container和ApplicationMaster。其中ResourceManger中包含两大组件:ApplicationManager和ResourceScheduler,其中ResourceManager作为一个纯资源调度器,只负责分配和调度资源,根据请求将资源打包成Container(一个逻辑资源单位,它可封装CPU、磁盘、网络等等不同种类的资源)进行发送,资源的调度是在运行过程中动态分配的,而ApplicationManager则负责应用程序的提交以及ApplicationMaster的启动及监控。

ResourceManager(RM)

RM是全局资源管理器,负责整个系统的资源管理和分配。

主要由两个组件组成:调度器和应用 程序管理器(ASM)

调度器

调度器根据容量,队列等限制条件,将系统中的资源分配给各个正在运行的应用程序

不负责具体应用程序的相关工作,比如监控或跟踪状态

不负责重新启动失败任务

资源分配单位用“资源容器”resource Container表示

Container是一个动态资源分配单位,它将内存,CPU,磁盘,网络等资源封装在一起,从而限定每个任务的资源量

调度器是一个可插拔的组件,用户可以自行设计

YARN提供了多种直接可用的调度器,比如fair Scheduler和Capacity Scheduler等。

应用程序管理器

负责管理整个系统中所有应用程序

ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM

AM的主要功能

与RM调度器协商以获取资源(用Container表示)

将得到的任务进一步分配给内部的任务

与NM通信以自动/停止任务

监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务

当前YARN自带了两个AM实现

一个用于演示AM编写方法的实例程序distributedshell

一个用于Mapreduce程序---MRAppMaster

其他的计算框架对应的AM正在开发中,比如spark等。

Nodemanager(NM)和Container

NM是每个节点上的资源和任务管理器

定时向RM汇报本节点上的资源使用情况和各个Container的运行状态

接收并处理来自AM的Container启动/停止等各种要求

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源

YARN会为每个任务分配一个Container,且改任务只能使用该Container中描述的资源

Container不同于MRv1的slot,它是一个动态资源划分单位,是根据应用程序的需求动态产生的


二、YARN工作步骤

1.client提交用户程序、ApplicationMaster、ApplicationMaster启动命令给RM;

2.由RM中的ApplicationManager向ResourceScheduler请求分配资源(Container),并且让对应的NodeManager在分配到的Container中启动应用程序的ApplicationMaster;

3.ApplicationMaster向RM(实际即ApplicationManager)注册以便ApplicationManager对ApplicationMaster进行监控管理,并且为每个每个任务向ResourceScheduler请求资源;

4.获取资源后,ApplicationMaster与对应的NodeManager通信,令其启动任务;

5.NodeManager为任务设置好运行环境(环境变量、JAR包、二进制代码等等),将任务启动命令写到一个脚本中,并通过运行该脚本启动任务;

6.运行过程中,各个任务通过RPC协议向ApplicationMaster汇报自己的运行情况和资源使用情况;

7.应用程序完成后,ApplicationMaster向ApplicationManager注销并关闭自己。


三、提交作业后,可以使用一下命令查看AM的情况

   yarn application -list 

  每个作业都有与之对应的AM进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值