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
答案 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