(1)客户端提交应用程序到资源管理器。 (2) 资源管理器分配用于运行ApplicationMaster的Container,然后与NodeManager通信,要求它在该Container中启动ApplicationMaster。
(3)ApplicationMaster向资源管理器注册并请求运行应用程序各个Task所需的Container。如果符合条件,资源管理器会分配给ApplicationMaster所需的Container。
(4)ApplicationMaster请求NodeManager使用这些Container来运行应用程序的相应Task。
此外,各个运行中的Task会通过RPC协议向ApplicationMaster汇报自己的状态和进度,这样一旦某个Task运行失败时,ApplicationMaster可以对其重新启动。当应用程序运行完成时,ApplicationMaster会向资源管理器申请注销自己。
#(ApplicationMaster=应用程序管理者
Container=YARN中资源分配的基本单位,是CPU和内存资源的一个容器。Task在它上面运行。
Task=应用程序的具体执行任务。一个程序可以有多个任务。
NodeManager=管理单个节点的资源。处理来自ApplicationMasterhe和资源管理器的命令。
ResourceManager=资源管理器。)
#ResourceManager管理整个集群,NodeManager管理集群中单个节点,ApplicationMaster管理单个应用程序。