首页 文章

无法设置比节点大的spark Actuator 编号

提问于
浏览
1

我按照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

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

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

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

  • 0

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

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

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

相关问题