无论我修改多少设置,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-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.xml
或spark-defaults.conf
,但实际上与资源计算器,核心分配给执行人或MapReduce作业的情况下,映射器/减速器。
默认资源计算器,即org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
仅使用内存信息来分配容器,默认情况下未启用CPU调度。使用这两种内存以及CPU的计算资源需要改变,以org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
中capacity-scheduler.xml
文件。
这就是需要改变的地方。
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句