Yarn原理

参考资料

参考:https://blog.csdn.net/COMEO/article/details/111421312

参考(较详细):https://www.cnblogs.com/nwnusun/p/16799362.html

Yarn概述

Yarn诞生背景


  1. Hadoop1.x中,存在资源管理问题
  2. 随着技术发展,出现了多种计算框架

Yarn是为了解决集群,对于多种框架,进行统一资源管理的场景,应运而生


Yarn介绍

yarn是一种通用的资源管理系统和调度平台。

资源管理系统 :管理集群内的硬件资源,和程序运行相关,比如内存,CPU等。

调度平台:多个程序同时申请计算资源时提供分配,调度的规则(算法)。

通用:不仅仅支持MapReduce程序,理论上支持各种计算程序如spark,flink。yarn不关系程序的计算内容,只关心程序所需的资源,在程序申请资源的时候根据调度算法分配资源,计算结束之后回收计算资源。使用yarn作为资源调度平台的计算框架自身需要提供ApplicationMaster来负责计算任务的调度。


Yarn框架

image-20230417161125674


1.1 Resource Manager(总指挥)

Rescource Manager = Rescource Scheduler + Application Manager

1.1.1 Scheduler(调度器)

根据容量 / 队列等限制条件,将系统资源分配给正在运行的应用程序

1.1.2 Application Manager(APP指挥)

负责管理整个系统的应用程序,包括程序的提交 / 调度协调资源 / 启动ApplicationMaster / 监控ApplicationMaster / 失败时重启


1.2 Node Manager(节点干部)

NodeManager相当于工作节点

  • 会定时向ResourceManager汇报所在节点资源使用情况
  • 会接受处理来自ApplicationMaster的启动停止容器(Container)的各种请求

1.3 Application Master(APP节点干部)

ApplicationMaster进行二次分配,相当于ApplicationManager下面的小组长

  • 协调来自ResourceManager的资源,负责二次分配
  • 通过NodeManager监控容器执行/资源使用情况,在任务运行失败时,申请资源重启任务

1.4 Container(虚拟资源池)

对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。


Yarn工作流程

![image-20230417155635157](/home/fubo/OneDrive/图片/image-20230417155635157.png

image-20230417155740053

image-20230417161801764


(1)Mr程序提交到客户端所在的节点。
(2)Yarn runner向Resource manager申请一个Application。
(3)rm将该应用程序的资源路径返回给yarn runner。
(4)该程序将运行所需资源提交到HDFS上。
(5)程序资源提交完毕后,申请运行mr AppMaster。
(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申请容器,运行reduce task。
(14)reduce task向maptask获取相应分区的数据。
(15)程序运行完毕后,MR会向RM申请注销自己。

posted @ 2023-06-28 16:19  付十一。  阅读(20)  评论(0)    收藏  举报