更好地理解YARN和Spark之间的沟通

问题描述 投票:1回答:1

我想更好地了解YARN和Spark之间的通信交流。例如:

  1. 从触发Spark工作到YARN分配资源的那一刻会发生什么?
  2. 当Spark作业请求的资源多于YARN时,会发生什么?
  3. 当Spark作业请求资源多于集群容量时会发生什么?
apache-spark yarn hortonworks-data-platform cloudera-cdh
1个回答
1
投票

在Yarn客户端模式下运行spark-submit时完成的步骤 -

  1. Spark驱动程序在内部调用ClientsubmitApplication方法。这将Spark应用程序提交给YARN集群(即YARN ResourceManager)并返回应用程序的ApplicationId。
  2. 在此之后,spark使用步骤1中生成的application_id并调用createContainerLaunchContext方法。此方法为YARN NodeManager创建YARN ContainerLaunchContext请求以启动ApplicationMaster(在容器中)。
  3. 第2步负责为应用程序启动ApplicationMaster。如果群集没有资源来启动AM,那么它将失败并且驱动程序将以异常关闭。 AM启动并运行后,它会联系驱动程序并启动它。此时火花纱应用已启动并运行。
  4. 在此驱动程序向AM请求资源(执行程序)之后,然后向Yarn ResourceManager请求它。
  5. 如果纱线没有那么大的容量,它将为Spark应用提供尽可能多的东西。如果它具有容量,它将提供所要求的任何内容。

更多细节 - https://jaceklaskowski.gitbooks.io/mastering-apache-spark/yarn/spark-yarn-client.html

© www.soinside.com 2019 - 2024. All rights reserved.