当JobClient向YARN提交一个应用程序后,YARN将分两个阶段运行这个应用程序:一是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,监控运行直到结束。
具体步骤如下:
1、用户向YARN提交一个应用程序,并指定ApplicationMaster程序、启动ApplicationMaster的命令、用户程序。
2、 RM为这个应用程序分配第一个Container,并与之对应的NM通讯,要求它在这个Container中启动应用程序ApplicationMaster。
3、 ApplicationMaster向RM注册,然后拆分为内部各个子任务,为各个内部任务申请资源,并监控这些任务的运行,直到结束。
4、 AM采用轮询的方式向RM申请和领取资源。
5、 RM为AM分配资源,以Container形式返回
6、 AM申请到资源后,便与之对应的NM通讯,要求NM启动任务。
7、 NodeManager为任务设置好运行环境,将任务启动命令写到一个脚本中,并通过运行这个脚本启动任务
8、 各个任务向AM汇报自己的状态和进度,以便当任务失败时可以重启任务。
9、应用程序完成后,ApplicationMaster向ResourceManager注销并关闭自己