独立群集模式:spark如何分配spark.executor.cores?

时间:2016-06-08 13:26:19

标签: apache-spark

我正在搜索spark如何以及在哪里为每个执行程序分配核心 源代码。 是否可以独立控制programmaticaly分配的核心 集群模式?

此致 利玛

2 个答案:

答案 0 :(得分:0)

Spark允许配置选项通过.set类上的SparkConf方法传递。

这里有一些设置新火花配置的scala代码:

new SparkConf()
  .setAppName("App Name")
  .setMaster('local[2]')
  .set("spark.executor.cores", "2")

有关不同配置选项的文档:

http://spark.apache.org/docs/1.6.1/configuration.html#execution-behavior

我没有详尽地浏览源代码,但我认为这是源代码中分配执行程序核心的地方:

https://github.com/apache/spark/blob/d6dc12ef0146ae409834c78737c116050961f350/core/src/main/scala/org/apache/spark/scheduler/cluster/ExecutorData.scala

答案 1 :(得分:0)

在独立模式下,您有以下选项:

一个。在启动集群时,您可以提及为spark应用程序分配了多少个cpu内核。这可以设置为env变量SPARK_WORKER_CORES或作为参数传递给shell脚本(-c或--cores)

湾应该注意(如果其他应用程序也共享像核心这样的资源),不要让火花占用所有核心。这可以使用spark.cores.max参数设置。

℃。您也可以将--total-executor-cores <numCores>传递给spark shell

有关详情,请查看here