欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Hadoop面试题---Yarn的作用以及工作机制

时间:2023-06-25
一、Yarn的作用

在大数据生态环境中,yarn主要有两个作用:资源管理和程序调度。

二、Yarn的组成

主要由ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件
构成。

三、Yarn的基础架构

(1)ResourceManager作用:
1)处理客户端请求;2)监控NodeManager,对各个NodeManager上的资源进行统一管理和调度;3)给ApplicationMaster分配空闲的Container运行并监控其运行状态(Scheduler来完成); 主要组成:资源调度器(Sheduler)和应用程序管理器(ApplicationManager)。

(2)NodeManager作用:
1)负责管理单个节点上的资源;2)定时的向RM汇报本节点上的资源使用情况和Container的运行状态。

(3)ApplicationMaster作用:
1)负责整个任务执行的监控,可以向RM汇报任务执行的状态,重启失败任务等;2)向RM为应用程序申请资源并分配给内部的任务。

(4)Container
可以理解为Yarn 中的资源抽象,封装了某个节点上的多维度资源,如内存、cpu、硬盘、网络等,AM向RM申请资源时,RM返回的资源就是用Container表示的。

三、Yarn作业提交全过程

1.作业提交

第 1 步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业,并向 RM 申请一个作业 id。
第 2 步:RM 给 Client 返回该 job 资源的提交路径和作业 id。(提交路径:hdfs路径)
第 3步:Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。(也就是将这些资源提交到返回的hdfs上)
第 4 步:Client 提交完资源后,向 RM 申请运行 MrAppMaster。(MrAppMaster其实是MapReduce的ApplicationMaster实现,它使得MapReduce计算框架可以运行于YARN之上)

2.作业初始化

第 5 步:当 RM 收到 Client 的请求后,ResourceManager(RM)中的ApplicationManager(AMG)将该 job 添加到容量调度器Scheduler中;
第 6 步:scheduler返回给AMG某一个空闲的 NodeManager(NM);
第 7 步:AMG调用scheduler分配给它的NM,由该 NM 创建 Container,并产生 MRAppmaster(负责监控任务,可以查看任务的执行状态)。
第 8 步:ApplicationMaster下载客户端提交的资源文件(切片信息等),根据切片信息生成Task。
第 9 步:ApplicationMaster向RM注册。

3.任务分配

第 10 步:ApplicationMaster向 RM (Scheduler)申请运行多个 MapTask 任务资源。
第 11步:RM 将运行 MapTask 任务分配给空闲的 NodeManager,NodeManager
分别领取任务并创建容器(一个或者多个,一个Task分配一个Container)。

4.任务执行
第 12 步:ApplicationMaster通知所有接收到Task的NodeManager启动计算,NodeManager 分别启动 MapTask,MapTask 对数据分区排序;
第13步:MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。
第 14 步:ReduceTask 向 MapTask 获取相应分区的数据。
第 15 步:程序运行完毕后,结果返回给MR(MrAppMaster),之后返回给AMG,再返回给Client。最后,Applicationmaster会向 AMG申请注销自己,整个job运行结束。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。