无法设置比节点大的spark执行器编号

时间:2015-06-30 00:37:34

标签: apache-spark

我按照说明操作 http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

我将--num-executors设置为13,即使我只有8个工作节点。在spark程序中,我明确设置了大量分区

val myPartitioner = new HashPartitioner(20)

spark程序运行正常,但在执行程序控制台中,它始终只显示8个执行程序。不应该显示13?

2 个答案:

答案 0 :(得分:0)

link中提到的--num-executors适用于YARN群集模式。

尝试在conf / spark-env.sh中设置以下环境变量,以增加独立或其他群集模式下的工作人员数量,

  

SPARK_WORKER_INSTANCES

     

每台计算机上运行的工作程序实例数(默认值:1)。如果您拥有非常大的机器并且想要多个Spark工作进程,则可以将其设置为1以上。如果设置了此项,请确保明确设置SPARK_WORKER_CORES以限制每个工作程序的核心,否则每个工作程序将尝试使用所有核心。

答案 1 :(得分:0)

确保spark.dynamicAllocation.enabled设置为 false 。默认情况下,它设置为false,所以如果你没有改变它,它应该没问题。

通过在spark-defaults.conf中添加spark.executor.instances 13来修改执行程序的数量。或者通过添加代码:

conf = new SparkConf()
                .setMaster("yarn-client")
                ....
                .set("spark.executor.instances", "13")