Spark中的CPU核心配置不起作用

时间:2015-11-18 19:41:53

标签: apache-spark

按照教程,我试图设置Spark Standalone模式 http://spark.apache.org/docs/latest/spark-standalone.html

教程说我们可以通过" -c CORES"工作人员设置允许的CPU核心总数。基于我对本教程的理解,我尝试通过使用以下方式启动集群,在我的工作机器的40个核心中仅使用16个核心:

$ {SPARK_HOME} /sbin/start-all.sh -c 16

然后我通过使用spark-submit运行了一个工作,并在master:8080上查看了webUI。但是,它显示它仍然使用所有40个内核而不是16个。我在$ {SPARK_HOME} / sbin中读取了start-master.sh和start-slave.sh,我认为他们实际上并没有解析参数。

因此,我现在可以限制应用程序核心数量的唯一方法是在$ {SPARK_HOME} /conf/spark_env.sh

中设置SPARK_WORKER_CORES

我想知道如何使用教程中讨论的-c参数。

2 个答案:

答案 0 :(得分:2)

这个论点是 - 正如你在脚本中看到的那样 - 不支持AFAIK。正确的方法是使用

的组合
spark-defaults.conf, 
spark-env.sh
command line settings e.g.  --executor_cores

表示用于给定任务的核心数。

答案 1 :(得分:2)

我提交的问题(issues.apache.org/jira/browse/SPARK-11841)已得到解答。 -c,-m和-d只能传递给start-slave.sh。并且您只能在要用作工作程序的计算机上运行这些脚本。 用法是:

start-slave.sh< masterURL> [选项]

例如,要启动具有16个内核的从站,我们可以使用:

start-slave.sh spark:// master_ip:7077 -c 16