
(1) client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
(2) ResourceManager启动一个container用于运行ApplicationMaster。
(3) 启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。
(4) ApplicationMaster向ResourceManager发送请求,申请相应数目的container。
(5) ResourceManager返回ApplicationMaster的申请的containers信息。申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。AM与NM保持心跳,从而对NM上运行的任务进行监控和管理。
(6) container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。
(7) 应用运行期间,client直接与AM通信获取应用的状态、进度更新等信息。
(8) 应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。

本文详细介绍了YARN资源分配的流程,从client提交应用程序到ResourceManager启动ApplicationMaster,再到ApplicationMaster与ResourceManager之间的交互,包括申请container、监控container状态以及应用结束时的资源释放等关键步骤。
最低0.47元/天 解锁文章
746

被折叠的 条评论
为什么被折叠?



