Hello,各位“极客”好,上一篇文章中介绍了YARN集群架构的基本内容,那么,在YARN集群中应用程序的执行流程是怎样的呢?这个问题很重要,就要好好说道说道了......
- 客户端提交应用程序(可以是MapReduce程序、Spark程序等)到ResourceManager。
- ResourceManager分配用于运行ApplicationMaster的Container,然后与NodeManager通信,要求它在该Container中启动ApplicationMaster。ApplicationMaster启动后,它将负责此应用程序的整个生命周期。
- ApplicationMaster向ResourceManager注册(注册后可以通过ResourceManager查看应用程序的运行状态)并请求运行应用程序各个Task所需的Container(资源请求是对一些Container的请求)。如果符合条件,ResourceManager就会分配给ApplicationMaster所需的Container(表达为Container ID和主机名)。
- ApplicationMaster请求NodeManager使用这些Container来运行应用程序的相应Task(将Task发布到指定的Container中运行)。
此外,各个运行中的Task会通过RPC协议向ApplicationMaster汇报自己的状态和进度,这样即使某个Task运行失败,ApplicationMaster也可以对其重新启动。当应用程序运行完成时,ApplicationMaster会向ResourceManager申请注销自己。
标签:Task,Container,ResourceManager,ApplicationMaster,应用程序,集群,YARN From: https://www.cnblogs.com/tianpan666/p/17922154.html