Spark独立编号执行器/内核控件

the*_*ing 7 apache-spark apache-spark-standalone

所以我有一个带有16个内核和64GB内存的Spark独立服务器.我在服务器上运行主服务器和工作服务器.我没有启用动态分配.我在Spark 2.0上

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

--num-executors 2
--executor-cores 2 
Run Code Online (Sandbox Code Playgroud)

只应占用4个核心.然而,当提交作业时,它会占用所有16​​个内核,并且无论如何都会绕过num-executors参数旋转8个执行程序.但如果我将executor-cores参数更改为4它将相应调整,4个执行器将旋转.

zer*_*323 17

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

注意:正如Marco 指出的那样,--num-executors YARN已不再使用.

您可以通过组合spark.cores.max以及spark.executor.cores确定执行程序的数量确定为静态分配(这也适用于Mesos)来有效地控制独立模式下执行程序的数量:

floor(spark.cores.max / spark.executor.cores)
Run Code Online (Sandbox Code Playgroud)

例如:

--conf "spark.cores.max=4" --conf "spark.executor.cores=2"
Run Code Online (Sandbox Code Playgroud)

  • 令人讨厌的部分是`--num-executors` 仍然被文档随机引用,有一些测试覆盖并且很高兴被接受作为一个选项。还有很多清洁工作要做。 (2认同)