Yarn任务提交和任务执行流程


发布于 2024-08-13 / 62 阅读 / 0 评论 /
Yarn是Hadoop的资源管理器,提交任务和任务执行是Yarn最基本的流程。 本文基于Hadoop3.3.4版本

了解yarn任务的提交过程,有助于我们理解Yarn设计理念。

1.Yarn任务提交过程

提交流程如下图所示

共分为9个过程。

(1)客户端向ResourceManager提交任务,本质上是向ResourceManager请求启动ApplicationMaster

(2)ResourceManager选择合适的NodeManager,并向NodeManager发送请求,要求启动ApplicationMaster

(3)NodeManager收到启动ApplicationMaster的请求后,根据所携带的参数,下载ApplicationMaster所依赖的资源到本地

(4)完成依赖资源的本地化后,NodeManager启动ApplicationMaster进程

(5)ApplicationMaster启动后向ResourceManager进行注册,并向ResourceManager申请启动任务container所需的资源

(6)ResourceManager根据NodeManager的资源汇报情况,向ApplicationMaster回复资源(container)的分配情况,即给请求的任务container分配具体的NodeManager。要注意的是,ResourceManager是等待NodeManager进行心跳汇报后,被动触发进行的。

(7)ApplicationMaster根据任务container分配的NodeManager,向对应的NodeManager发送请求,要求启动任务container

(8)NodeManager收到启动任务container的请求后,同样根据请求参数,先完成依赖资源的本地化,然后启动任务container进程

(9)启动Container进程。任务container的运行状态,是NodeManager通过心跳向ResourceManager汇报,ResourceManager再通过ApplicationMaster的心跳响应告知对应的ApplicationMaster。

2.从源码看yarn任务提交

任务提交过程中,接口调用顺序如下图所示: