(1).用户向YARN中提交应用程序。
(2).ResourceManager为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的ApplicationMaster。
(3).ApplicationMaster首先向ResourceManager注册,目的是让用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束。
(4).ApplicationMaster向ResourceManager 的 scheduler申请和领取资源(通过RPC协议)。
(5).ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务(java进程)。
(6).NodeManager启动任务。
(7).各个任务向ApplicationMaster汇报自己的状态和进度(通过RPC协议),以便让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
(8).应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。