-
用户向ResourceManager中提交应用程序,其中包括ApplicationMaster程序。
-
ResourceManager为ApplicationMaster分配一个 Container(分配后Container由NodeManager创建),然后NodeManager在 Container中运行ApplicationMaster。
-
ApplicationMaster首先向ResourceManager注册,
-
ApplicationMaster为各个任务申请资源,并监控它的运行状态,直到运行结束。
-
ApplicationMaster申请成功后,ResourceManager为该应用程序的所有任务都分配一个Container
-
ApplicationMaster与目标NodeManager通信,请求NodeManager创建Container,
-
然后NodeManager在 Container中运行其任务。
-
各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可以随时通过 RPC向 ApplicationMaster查询应用程序的当前运行状态。
-
应用程序运行完成后,ApplicationMaster向 ResourceManager注销并关闭自己,Container也会被回收。