YARN的工作原理

本文详细介绍了YARN(Yet Another Resource Negotiator)的组成部分及其工作流程,包括ResourceManager、NodeManager、JobHistoryServer等组件的功能,以及从用户提交job到最终结果输出到HDFS的整个过程。

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

YARN的组成部分

YARN共有ResourceManager、NodeManager、JobHistoryServer、Containers、Application Master、job、Task、Client组成。
在这里插入图片描述

Resource Manager: 一个Cluster 只有一个,负责资源调度、资源分配等工作。

JobHistory Server: 负责查询job运行进度及元数据管理。

nodemanager:运行在datanode节点,负责启动Application和对资源的管理。

Containers: Container通过ResourceManager分配。包括容器的cpu、内存等资源。

Application master:通俗来说Application master 相当于包工头,Resource Manager 相当于经理。Resource Manager 首先将任务给Application master,然后Application master 在将Resource manager的指示传达给各个 nodemanager(相当于工人)进行干活儿。每个application只有一个Applicationmaster,运行在node manager节点,Application master是由Resource manager指派的。

job:一个mapper、一个Reducer或一个进程的输入列表。job也可以叫做Application。

task:一个具体做mapper或Reducer的独立的工作单元。task运行在nodemanager 的Container中。

client:一个提交给Resource manager的一个Application程序。

提交一个job的工作流程

在这里插入图片描述

  1. 用户向YARN中提交程序/作业,其中包括Application Master启动、ApplicationMaster的命令及用户程序等;ResourceManager为作业分配第一个Container,并与对应的nodemanager通信,要求它在这个Container中启动改作业的Application master;Applicationmaster首先向Resourcemaster注册,这样用户可以直接通过Resourcemanager查询作业的运行状态,然后它将为各个人物申请资源并监控任务的运行状态,知道运行结束;Application通过RPC请求向Resourcemanager申请和领取资源。
    在这里插入图片描述
  2. 然后Applicationmaster 要求指定的nodemanager 节点启动任务。

在这里插入图片描述
3. 启动之后,去干Resource Manager 指定的map tesk。
在这里插入图片描述
4. 等Map task干完之后,通知application master。然后application master 去告知resouce manager。接下来Resource manager 分配新的资源给application master,让它找人干其它的活儿。
在这里插入图片描述
5. 接下来Application master 通知nodemanager启动新的Container准备干活儿。该活儿的输入是map task结束的输出。
在这里插入图片描述
4. 开始干Reduce Task任务。
在这里插入图片描述
5. 等各个节点上的Reduce task 都干完了,将干活儿的nodemanager的任务结果进行同步。做最后的reduce任务。
在这里插入图片描述
6. 等都计算完了,最后将最终的结果输出到hdfs。任务完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值