其他分享
首页 > 其他分享> > Hadoop——Yarn(4)

Hadoop——Yarn(4)

作者:互联网

Hadoop——Yarn(4)

文章目录

1.Yarn基础架构

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1py1nTW-1642340982629)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116211924585.png)]

2.Yarn工作机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICb0lrzT-1642340982630)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116212143756.png)]

(1)MR程序提交到客户端所在的节点.
(2)YarnRunner向ResourceManager申请一个Application
(3)Rm将应用程序的资源路径返回给YarnRunner
(4)该程序将运行所需资源提交到HDFS上
(5)程序资源提交完毕后,申请运行mrAppMaster
(6)RM将用户的请求初始化成一个Task
(7)其中一个NodeManager领取到Task任务
(8)该NodeManager创建容器Container,并产生MRAppmaster
(9)Container从HDFS上拷贝资源到本地
(10)MRAppmaster 向 RM 申请运行 MapTask 资源。
(11)RM 将运行 MapTask 任务分配给另外两个NodeManager,另两个 NodeManager分别领取任务并创建容器。
(12)MR 向两个接收到任务的 NodeManager 发送程序启动脚本,这两个 NodeManager分别启动 MapTask,MapTask 对数据分区排序。
(13)MrAppMaster 等待所有 MapTask 运行完毕后,向 RM 申请容器,运行 ReduceTask。
(14)ReduceTask 向 MapTask 获取相应分区的数据。
(15)程序运行完毕后,MR 会向 RM 申请注销自己。

3.作业提交全过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kI8Sp1Gk-1642340982631)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116213754238.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H4UOKCU8-1642340982631)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116213802174.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KT02nSdT-1642340982632)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116213810132.png)]

(1)作业提交
第 1 步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。
第 2 步:Client 向 RM 申请一个作业 id。
第 3 步:RM 给 Client 返回该 job 资源的提交路径和作业 id。
第 4 步:Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。
第 5 步:Client 提交完资源后,向 RM 申请运行 MrAppMaster。

(2)作业初始化
第 6 步:当 RM 收到 Client 的请求后,将该 job 添加到容量调度器中。
第 7 步:某一个空闲的 NM 领取到该 Job。
第 8 步:该 NM 创建 Container,并产生 MRAppmaster。
第 9 步:下载 Client 提交的资源到本地。

(3)任务分配
第 10 步:MrAppMaster 向 RM 申请运行多个 MapTask 任务资源。
第 11 步:RM 将运行 MapTask 任务分配给另外两个 NodeManager,另两个 NodeManager
分别领取任务并创建容器。

(4)任务运行
第 12 步:MR 向两个接收到任务的 NodeManager 发送程序启动脚本,这两个
NodeManager 分别启动 MapTask,MapTask 对数据分区排序。
第13步:MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。
第 14 步:ReduceTask 向 MapTask 获取相应分区的数据。
第 15 步:程序运行完毕后,MR 会向 RM 申请注销自己。

(5)进度和状态更新
YARN 中的任务将其进度和状态(包括 counter)返回给应用管理器, 客户端每秒(通过
mapreduce.client.progressmonitor.pollinterval 设置)向应用管理器请求进度更新, 展示给用户。

(6)作业完成
除了向应用管理器请求作业进度外, 客户端每 5 秒都会通过调用 waitForCompletion()来
检查作业是否完成。时间间隔可以通过 mapreduce.client.completion.pollinterval 来设置。作业
完成之后, 应用管理器和 Container 会清理工作状态。作业的信息会被作业历史服务器存储
以备之后用户核查。

4.调度器和调度算法

目前Hadoop作业调度器主要有三种:FIFO,容量(Capacity Scheduler)和公平(Fair Scheduler)
Apache Hadoop3.13默认:Capacity Scheduler
CDH框架默认调度器是:Fair Scheduler

4.1先进先出调度器(FIFO)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmgDnzll-1642340982632)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116214345775.png)]

4.2容量调度器(Capacity Scheduler)

Yahoo开发的多用户调度器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bv3d5RBr-1642340982633)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116214509838.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQlGAnZ5-1642340982633)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116214519021.png)]

4.3公平调度器(Fair Scheduler)

Facebook开发的多用户调度器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrO37rus-1642340982634)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220116214610156.png)]
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.Yarn生产环境核心参数

在这里插入图片描述

标签:作业,Hadoop,MapTask,调度,Yarn,RM,NodeManager
来源: https://blog.csdn.net/mynameisgt/article/details/122529671