Apache Spark:设置执行程序实例

时间:2016-10-26 16:08:50

标签: apache-spark yarn executors apache-spark-1.6

我在YARN上使用参数运行我的Spark应用程序:

在spark-defaults.conf中:

spark.master yarn-client
spark.driver.cores 1
spark.driver.memory 1g
spark.executor.instances 6
spark.executor.memory 1g
<-b>在yarn-site.xml中:

yarn.nodemanager.resource.memory-mb 10240

所有其他参数都设置为默认值。

我有一个6节点集群,每个节点上都安装了Spark Client组件。 每次运行应用程序时,Spark UI中只能看到2个执行程序和1个驱动程序。执行程序出现在不同的节点上。

为什么Spark不能创建更多的执行者?为什么只有2而不是6?

我发现了一个非常相似的问题:Apache Spark: setting executor instances does not change the executors,但增加memoty-mb参数对我的情况没有帮助。

1 个答案:

答案 0 :(得分:1)

乍一看配置看起来还不错。

确保您已覆盖正确的spark-defaults.conf文件。

对当前用户执行echo $SPARK_HOME并验证修改后的spark-defaults文件是否在$ SPARK_HOME / conf /目录中。否则Spark无法看到您的更改。

我修改了错误的spark-defaults.conf文件。我的系统中有两个用户,每个用户都有一个不同的$ SPARK_HOME目录集(之前我不知道)。这就是为什么我看不到我的设置对其中一个用户的任何影响。

您可以使用参数--num-executors 6运行spark-shell或spark-submit(如果您想拥有6个执行程序)。如果Spark创建的执行程序比以前多,那么您将确定,这不是内存问题,而是具有不可读配置的内容。