Spark节俭服务器仅使用2个内核

时间:2018-08-21 06:52:53

标签: apache-spark hadoop google-cloud-dataproc

Google dataproc一节点集群,VCores Total =8。我尝试通过用户spark:

/usr/lib/spark/sbin/start-thriftserver.sh --num-executors 2 --executor-cores 4

试图更改/usr/lib/spark/conf/spark-defaults.conf

试图执行

   export SPARK_WORKER_INSTANCES=6
   export SPARK_WORKER_CORES=8

在start-thriftserver.sh之前

没有成功。在yarn UI中,我可以看到节俭应用程序仅使用2个内核和6个内核。

UPDATE1: Spark ui上的“环境”标签:

spark.submit.deployMode client
spark.master    yarn
spark.dynamicAllocation.minExecutors    6
spark.dynamicAllocation.maxExecutors    10000
spark.executor.cores    4
spark.executor.instances    1

yarn ui spark ui

2 个答案:

答案 0 :(得分:3)

这取决于该应用程序所处的纱线模式。 可以是yarn client-Application Master的1个核心(该应用将在您运行命令start-thriftserver.sh的计算机上运行)。 如果使用yarn cluster-驱动程序将位于AM容器内,因此您可以使用spark.driver.cores来调整内核。执行者将使用其他内核(默认情况下1个执行者= 1个内核) 当心--num-executors 2 --executor-cores 4将不起作用,因为您最多拥有8个核心,而AM容器则需要+1(总共9个) 您可以从Spark UI-http://sparkhistoryserverip:18080/history/application_1534847473069_0001/executors/

检查内核使用情况

以下选项仅适用于Spark独立模式:

export SPARK_WORKER_INSTANCES=6
export SPARK_WORKER_CORES=8

请在此处查看所有配置-Spark Configuration (latest)

根据您的情况,您可以编辑spark-defaults.conf并添加:

spark.executor.cores 3
spark.executor.instances 2

或者使用local [8]模式,因为您始终只有一个节点。

答案 1 :(得分:0)

如果您希望YARN显示给您分配给执行者的正确内核数,请更改Capacity-scheduler.xml中的值,以用于

yarn.scheduler.capacity.resource-calculator

来自:

org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator

收件人:

org.apache.hadoop.yarn.util.resource.DominantResourceCalculator

否则,您要求执行者有多少个内核都没有关系,YARN将只向您显示每个容器一个内核。

实际上,此配置会更改资源分配行为。更多详细信息:flatted