spark.executor.instances over spark.dynamicAllocation.enabled = True

问题描述 投票:1回答:2

我在使用MapR发布的Spark项目中工作,其中启用了动态分配。请参考以下参数:

spark.dynamicAllocation.enabled         true
spark.shuffle.service.enabled           true
spark.dynamicAllocation.minExecutors    0
spark.dynamicAllocation.maxExecutors    20
spark.executor.instances                2

根据我的理解,spark.executor.instances是我们在提交pySpark作业时定义为--num-executors的。

我有以下2个问题:

  1. 如果我在提交作业期间使用--num-executors 5会覆盖spark.executor.instances 2配置设置吗?
  2. 在动态分配min和max执行程序已经定义的情况下定义spark.executor.instances的目的是什么?
apache-spark pyspark
2个回答
0
投票

还有一个参数

spark.dynamicAllocation.initialExecutors

它需要spark.dynamicAllocation.minExecutors的价值。如果定义了spark.executor.instances并且它大于minExecutors那么它将采用初始执行器的值。


0
投票

spark.executor.instances基本上是静态分配的属性。但是,如果启用了动态分配,则初始执行程序集将至少等于spark.executor.instances

当你设置--num-executors时,它不会在配置设置中被覆盖。

额外阅读:official doc

© www.soinside.com 2019 - 2024. All rights reserved.