YARN的工作原理

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。任务完成。

MR on YARN(MapReduce on Yet Another Resource Negotiator)是一种在Hadoop生态系统中运行MapReduce作业的方式。它的工作原理如下: 1. 提交作业:用户通过客户端向YARN资源管理器(ResourceManager)提交MapReduce作业。作业包括MapReduce程序的代码和配置信息。 2. 资源分配:ResourceManager接收到作业后,将其分解为多个任务(Task),包括Map任务和Reduce任务。然后,ResourceManager根据集群中可用的资源情况,将这些任务分配给不同的节点NodeManager)执行。 3. 任务执行:每个节点上的NodeManager接收到任务后,会启动一个容器(Container)来执行该任务。容器是一个隔离的执行环境,其中包含了任务所需的资源和环境。 4. Map阶段:在Map阶段,每个Map任务会读取输入数据,并将其划分为多个键值对。然后,Map任务会将这些键值对按照指定的逻辑进行处理,并生成中间结果。 5. Shuffle阶段:在Shuffle阶段,Map任务的中间结果会被分区、排序和分组,以便传输给Reduce任务进行处理。这个过程涉及到数据的排序和网络传输。 6. Reduce阶段:在Reduce阶段,每个Reduce任务会接收到一组经过Shuffle阶段处理的中间结果。Reduce任务会对这些结果进行合并、计算和输出,生成最终的结果。 7. 完成作业:当所有的Map任务和Reduce任务都完成后,作业会被标记为完成,并将最终的结果输出到指定的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值