10

所以我有一个 16 核和 64GB RAM 的 spark 独立服务器。我在服务器上运行了主服务器和工作程序。我没有启用动态分配。我在 Spark 2.0

我不明白的是当我提交我的工作并指定:

--num-executors 2
--executor-cores 2 

只应占用 4 个核心。然而,当提交作业时,它会占用所有 16 个内核并启动 8 个执行器,而忽略了num-executors参数。但是,如果我将executor-cores参数更改为4它将相应地调整,并且 4 个执行器将启动。

4

1 回答 1

19

免责声明:我真的不知道是否--num-executors应该在独立模式下工作。我还没有看到它在 YARN 之外使用过。

注意:正如Marco 所指出的,--num-executors 不再在 YARN 上使用

您可以通过组合spark.cores.maxspark.executor.cores其中执行器的数量确定为:

floor(spark.cores.max / spark.executor.cores)

例如:

--conf "spark.cores.max=4" --conf "spark.executor.cores=2"
于 2016-09-08T21:05:14.360 回答