一尘不染

如何设置Spark执行器的数量?

java

如何从Java(或Scala)代码中配置具有SparkConfig和的执行器数量SparkContext?我经常看到2个执行者。看起来像是spark.default.parallelism行不通的,并且是与众不同的。

我只需要将执行程序的数量设置为等于集群大小,但是总是只有2个。我知道我的集群大小。如果这很重要,我会在YARN上运行。


阅读 516

收藏
2020-12-03

共1个答案

一尘不染

好的,我知道了。执行程序的数量实际上不是Spark属性本身,而是用于在YARN上放置作业的驱动程序。因此,当我使用SparkSubmit类作为驱动程序时,它具有适当的--num- executors参数,正是我所需要的。

更新:

对于某些工作,我不再遵循SparkSubmit方法。我主要不能针对Spark作业只是应用程序组件之一(甚至是可选组件)的应用程序执行此操作。对于这些情况,我使用spark- defaults.conf附加到群集中的群集配置和spark.executor.instances属性。这种方法更为通用,可让我根据群集(开发人员工作站,登台,生产)适当地平衡资源。

2020-12-03