首页 > 解决方案 > Spark - Yarn 客户端模式下应用程序主控的执行器数量

问题描述

问题

在 Yarn 客户端模式下,应用程序主控(AM)需要多少个执行器?

在 Yarn集群模式下,根据How-to: Tune Your Apache Spark Jobs (Part 2),AM 需要 2 个执行器。

更好的选择是使用 --num-executors 17 --executor -cores 5 --executor-memory 19G。为什么?

此配置会在所有节点上产生三个执行程序,但带有 AM 的节点除外,它将有两个执行程序。

更新

我误解了这篇文章。AM 是一个 JVM,所以如果每个节点运行 3 个 JVM(执行器),那么 AM 节点可以运行 2 个执行器。YARN 模式与 AM 进程需要多少个非执行者 JVM 无关。总是 1 个 JVM。

标签: apache-spark

解决方案


我的猜测是,您的执行模式(集群/客户端)在影响方面与 AM 无关。Yarn Application Master 始终在集群上运行,并与驱动程序/客户端(这是唯一受您的 exec 模式影响的)去关联

1 -正如您在下面看到的那样,客户端和 App Master 是去相关的

在此处输入图像描述

2 - Spark Cluster 模式:驱动程序是驱动程序节点上的执行程序

在此处输入图像描述

3 - Spark 客户端模式:驱动程序从 spark 作业提交的来源的工人/机器执行

在此处输入图像描述


推荐阅读