首页 文章

Apache Spark:设置执行程序实例

提问于
浏览
2

我使用参数在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

在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 回答

  • 1

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

    Make sure that you have overwritten the proper spark-defaults.conf file.

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

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

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

相关问题