YARN集群中应用程序的执行流程

发布时间 2023-12-22 18:17:56作者: 智慧的骆驼

      Hello,各位“极客”好,上一篇文章中介绍了YARN集群架构的基本内容,那么,在YARN集群中应用程序的执行流程是怎样的呢?这个问题很重要,就要好好说道说道了......

      

  1. 客户端提交应用程序(可以是MapReduce程序、Spark程序等)到ResourceManager。
  2. ResourceManager分配用于运行ApplicationMaster的Container,然后与NodeManager通信,要求它在该Container中启动ApplicationMaster。ApplicationMaster启动后,它将负责此应用程序的整个生命周期。
  3. ApplicationMaster向ResourceManager注册(注册后可以通过ResourceManager查看应用程序的运行状态)并请求运行应用程序各个Task所需的Container(资源请求是对一些Container的请求)。如果符合条件,ResourceManager就会分配给ApplicationMaster所需的Container(表达为Container ID和主机名)。
  4. ApplicationMaster请求NodeManager使用这些Container来运行应用程序的相应Task(将Task发布到指定的Container中运行)。

         此外,各个运行中的Task会通过RPC协议向ApplicationMaster汇报自己的状态和进度,这样即使某个Task运行失败,ApplicationMaster也可以对其重新启动。当应用程序运行完成时,ApplicationMaster会向ResourceManager申请注销自己。