簡體   English   中英

Apache Hadoop Yarn - 內核利用率不足

[英]Apache Hadoop Yarn - Underutilization of cores

無論我如何修改yarn-site.xml的設置,即使用以下所有選項

yarn.scheduler.minimum-allocation-vcores
yarn.nodemanager.resource.memory-mb
yarn.nodemanager.resource.cpu-vcores
yarn.scheduler.maximum-allocation-mb
yarn.scheduler.maximum-allocation-vcores

我仍然無法讓我的應用程序即 Spark 利用集群上的所有核心。 spark executor 似乎正確地占用了所有可用內存,但每個 executor 只占用一個內核,僅此而已。

以下是spark-defaults.conf配置的選項

spark.executor.cores                    3
spark.executor.memory                   5100m
spark.yarn.executor.memoryOverhead      800
spark.driver.memory                     2g
spark.yarn.driver.memoryOverhead        400
spark.executor.instances                28
spark.reducer.maxMbInFlight             120
spark.shuffle.file.buffer.kb            200

請注意spark.executor.cores設置為 3,但它不起作用。 我該如何解決?

問題不在於yarn-site.xmlspark-defaults.conf而實際上在於將內核分配給執行程序的資源計算器,或者在MapReduce 作業的情況下,分配給Mappers/Reducers。

默認資源計算器org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator僅使用內存信息來分配容器,默認情況下不啟用 CPU 調度。 要同時使用內存和 CPU,需要將capacity-scheduler.xml文件中的資源計算器更改為org.apache.hadoop.yarn.util.resource.DominantResourceCalculator

這是需要改變的。

<property>
    <name>yarn.scheduler.capacity.resource-calculator</name>
    <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>

我遇到了類似的問題,從我的代碼中,我將spark.executor.cores as 5設置spark.executor.cores as 5 即使它只是取 1,這是默認的核心。 在 spark UI 和環境選項卡中,我看到了 5 個內核。 但是在檢查執行程序選項卡時,我只能看到 1 個進程處於針對執行程序的RUNNING狀態。 我使用的是 spark 版本1.6.3

因此,我嘗試將 spark-submit 命令設為--conf spark.executor.cores=5 ,它在使用 5 個內核時工作正常

要不就

--executor-cores 5也可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM