Hadoop 2.0的YARN架构

YARN Architecture of Hadoop 2.0

从 Apache Hadoop 站点 link 下面,我了解到

ApplicationMaster has the responsibility of negotiating appropriate resource containers from the Scheduler (ResourceManager)

并了解到

ApplicationsManager negotiating the first container for executing the ApplicationMaster

Link : http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

所以这是我的困惑。

  1. 如果ApplicationMaster有责任为Container请求ResourceManager,那么谁在创建first container以及创建[=10=的过程是什么] 用于执行 ApplicationMaster?
  2. 有没有人提供和请求创建 first container
  3. first Container 的职责是什么? First Container 只执行 ApplicationMaster 或者它的行为也像其他资源容器?

如果有人对此有任何想法,请告诉我。

首先,您混淆了术语 ApplicationManagerApplicationMaster。不一样的,看看我的回答就明白了

您的问题的答案如下:

  1. YarnClient has the responsibility to submit the application to ResourceManager, it sends an ApplicationSubmissionContext 对象到 ResourceManager,它表示 ResourceManager 为应用程序启动 ApplicationMaster 所需的所有信息。

  2. 是的,YarnClient 做到了!

  3. 首先Container是Application Master,它的工作是向ResourceManager请求资源(容器)并做出应用级别的决策。如果 ResourceManager 提供了足够数量的容器(由 ApplicationMaster 中的逻辑定义),则 ApplicationMaster 可以继续并在容器上启动应用程序代码。此外,ApplicationMaster 会跟踪失败的容器并重新启动它们或终止应用程序(杀死所有其他容器),同样基于您的 ApplicationMaster 的逻辑。

要了解 Hadoop YARN 的内部结构,我建议您阅读 YARN paper or if you have more time you can read a book on Hadoop YARN。