按照教程,我试图设置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参数。
答案 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