如果spark.executor.instances和spark.cores.max不工作,如何在Spark Standalone模式下增加执行程序的数量

时间:2016-05-18 20:20:10

标签: apache-spark pyspark

我到处寻找,但无法找到我需要的答案。我在独立模式下运行Spark 1.5.2,SPARK_WORKER_INSTANCES = 1,因为每个主机每个工作者只需要1个执行程序。我想要的是增加我的工作的主机数量,从而增加执行者的数量。我尝试在spark-defaults.conf中更改spark.executor.instances和spark.cores.max,仍然看到相同数量的执行程序。人们建议更改--num-executors,这与spark.executor.instances不一样吗?

这个Cloudera博客文章 http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/说" --num-executors命令行标志或spark.executor.instances配置属性控制请求的执行程序数。从CDH 5.4 / Spark 1.3开始,您可以通过使用spark.dynamicAllocation.enabled属性打开动态分配来避免设置此属性。 但是我不确定spark.dynamicAllocation.enabled是否仅适用于YARN。

非常感谢任何有关如何为Spark 1.5.2执行此操作的建议!

1 个答案:

答案 0 :(得分:0)

我不相信你需要设置SPARK_WORKER_INSTANCES!如果你想使用它,你需要设置SPARK_WORKER_CORES环境变量,否则,你将最终得到一个消耗所有核心的工人。因此,其他工人无法正确启动!

我还没有在YARN Configuration with Spark

之外看到spark.executor.instances

那就是说,我肯定建议使用--num-executors让你的集群有多个工人!