掌握了YARN的体系结构后,接下来看一下YARN的工作流程,具体如图1所示。
图1 YARN工作流程
下面针对图1展示的YARN的工作过程进行介绍,具体如下:
(1)用户通过客户端Client向YARN提交应用程序Applicastion,提交的内容包含Application的必备信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
(2)YARN中的ResourceManager接收到客户端应用程序的请求后,ResourceManager中的调度器(Scheduler)会为应用程序分配一个容器,用于运行本次程序对应的ApplicationMaster。图6-2中的MR App Mstr表示的是MapReduce程序的ApplicationMaster。
(3)ApplicationMaster被创建后,首先向ResourceManager注册信息,这样用户可以通过ResourceManager查看应用程序的运行状态。接下来的第(4)~(7)步是应用程序的具体执行步骤。
(4)ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请资源。
(5)ResourceManager向提出申请的ApplicationMaster分配资源。一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要