SPARK在群集中的每台计算机上仅使用一个虚拟Core

时间:2016-02-03 21:38:30

标签: hadoop apache-spark yarn

当我在YARN中运行spark应用程序时,它似乎只在每台机器上使用1个核心。如何使用机器上的所有核心?

我的yarn-site.xml是:

<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>57344</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>5</value>
<property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>30</value>
</property>

我的spark-defaults.conf有以下内容:

spark.driver.memory=8g
spark.driver.cores=3
spark.executor.memory=48g
spark.executor.cores=30

当我执行“htop”时,它显示了许多正在使用的核心。但在纱线webUI中,我看到只使用了1个vCore。

enter image description here

1 个答案:

答案 0 :(得分:0)

终于找到了遗漏的东西。

spark-defaults.conf需要以下两行:

spark.dynamicAllocation.enabled=true
spark.shuffle.service.enabled=true

如果您使用Spark 1.4及更高版本(我不确定1.3),则应使用上述内容。对于旧版本的spark:

spark.executor.instances=15

应该使用。