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