Yarn组成架构、Job提交流程及调度器

本文详细解析了Yarn的组成架构,包括ResourceManager、ApplicationMaster、NodeManager和Container的作用及交互流程。同时,介绍了Yarn的三种资源调度器:FIFO、容量调度器和公平调度器的工作原理。

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

Yarn组成架构

ResourceManager:全局资源管理器。
·
ApplicationMaster:就是一个java程序,类名叫MRAppMaster,所以进程名叫做MRAppMaster。负责监控Map任务和Reduce任务,client提交的
每个mr程序都会产生一个MRAppMaster,负责整个程序的管理。

NodeManager:单个节点上的资源管理器。

Container(资源池):节点上的资源抽象,封装了多维度资源,如内存、CPU、磁盘、网络等,与虚拟机原理一致。

Job提交的处理流程

1)Client向ResourceManage发出job提交请求,ResourceManage返回hdfs上的提交临时路径。

2)Client把应用程序的jar包、切片信息、配置信息提交成功后,向ResourceManage申请执行ApplicationMaster。

3)ResourceManager把job请求放到执行队列里。当执行到job请求时并且yarn集群中存在空闲的节点,job请求就会被对应的NodeManager领取,NodeManager分配资源池执行ApplicationMaster。

4)ApplicationMaster到hdfs上的临时目录中读取客户端提交的信息,根据信息向ResourceManager提交执行请求,ResourceManager把请求分发给集群中的NodeManager,NodeManager分配执行所需要的资源池。

5)ApplicationMaster先启动MapTask,执行完再启动ReduceTask。

6)ReduceTask结束后,ResourceManager结束ApplicationMaster进程。释放执行此job需要的所有资源。

在这里插入图片描述

Yarn的3种资源调度器

1.FIFO:只有一个队列,先来先服务,同一时间只能执行一个任务。
2.容量调度器:多队列,每个队列当中,同一时间只能有一个任务执行。并发度=队列数。
3.公平调度器:多队列,每个队列中,同一时间有多个任务执行。执行原则:缺额越大,越先执行。并发度>=队列数。
每个队列中的job按照优先级分配资源,优先级越高分配的资源越多,但是每个job都会分配到资源以确保公平。在资源有限的情况下,每个job理想情况下获得的计算资源与实际获得的计算资源存在一种差距,这个差距就叫做缺额。在同一个队列中,job的资源缺额越大,越先获得资源优先执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值