yarn

简单介绍yarn

yarn是一个资源管理、任务调度的框架。主要包含三个模块:resourceManger、nodeManger、ApplicationMater。

简单介绍三个组件的作用

RM:负责所有资源的监控、分配和管理

AM:负责每一个具体应用程序的调度和协调

--applicationmaster。用户提交的每个应用程序均包含一个AM,它可以运行在RM以外的机器上。

NM:负责每一个节点的维护。

--nodemanger负责该节点的程序的正常运行,定时向RM汇报本节点资源(cpu、内存)的使用情况和Container的运行状况。当Rm宕机后连接RM的备用节点。负责接收并处理来自AM的Container的启动、停止等各种请求。

yarn有哪些调度器

FIFO(队列)调度:把应用按提交的顺序排成一个队列,按照先进先出进行资源分配。

容量调度:该调度允许多个组织共享整个集群,再为每个组织分配专门的队列。再为队列分配相应的计算资源。

公平调度:在公平调度中,我们不需要提前占用集群资源,fair调度器会在运行过程中根据job的执行动态的调整系统的资源分配。

什么是container

是一个抽象概念,称之为容器,包含任务运行时所需的资源(包括内存、硬盘、cpu等)和环境(包含启动命令、环境变量等)

yarn的执行流程

①客户端向集群提交一个任务,该任务首先到RM中的AM

②AM收到任务后,会在集群中找一个NodeManger,在该NodeManger上启动一个APPMaster进程。该进程用于执行任务划分和任务监控。

③AppMaster启动起来之后,会向RM中的AM注册信息,APPMaster向RM下的ResourceSchedule申请计算任务所需的资源。

④AppMaster申请到资源之后,会与所有NodeManger通信要求他们启动所有计算任务(map和reudce)

⑤各个NM启动对应的容器Container用来执行Map和Reduce任务。

⑥各个任务会向APPMaster汇报自己的执行进度和执行状况,以便让AppMaster随时掌握各个任务的运行状态,在某个任务出了问题之后重启执行该任务。

⑦在执行完之后,APPMaster会向AM汇报,以便让ApplicationManger注销并关闭自己,使得资源得以回收。

 

img

 

img

 

posted @ 2022-04-11 16:14  wqkant  阅读(191)  评论(0编辑  收藏  举报