当用户向yarn提交一个应用程序后,yarn分两个阶段运行此任务,第一个阶段启动ApplicationMaster,第二个阶段由ApplicationMaster创建应用程序,为它申请资源,监控整个运行过程,知道任务完成,总得来说有以下几个步骤
1.用户向yarn提交应用程序,包括ApplicationMaster程序,
2.RM为应用程序分配一个Container,并与对应的NM通信,要求它启动应用程序的ApplicationMaster
3.ApplicationMaster向RM注册自己,这样用户可通过RM查看任务运行状态,然后AM向RM申请各个资源,并监控运行状态直到结束,
4.AM通过轮询的方式通过RPC协议向RM申请和领取资源
5.一旦AM申请到资源,就与对应的NM通信,让其启动任务
6.NM为任务设置好运行环境后,将任务的启动命令写入到一个脚本中,通过运行脚本启动任务
7.各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,一边在失败时能重启服务
8.任务完成,AM向RM注销并关闭