yarn不是yarn.nodemanager.resource.cpu-vcores

zvokhttg  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(506)

我正在使用 Hadoop-2.4.0 我的系统配置是24核,96gbram。
我正在使用以下配置

mapreduce.map.cpu.vcores=1
yarn.nodemanager.resource.cpu-vcores=10
yarn.scheduler.minimum-allocation-vcores=1
yarn.scheduler.maximum-allocation-vcores=4
yarn.app.mapreduce.am.resource.cpu-vcores=1

yarn.nodemanager.resource.memory-mb=88064
mapreduce.map.memory.mb=3072
mapreduce.map.java.opts=-Xmx2048m

容量计划程序配置

queue.default.capacity=50
queue.default.maximum_capacity=100
yarn.scheduler.capacity.root.default.user-limit-factor=2

使用上述配置,我预计yarn不会在每个节点上启动超过10个Map器,但它在每个节点上启动28个Map器。我做错什么了吗??

j2datikz

j2datikz1#

由于默认情况下使用了defaultresourcecalculator,因此yarn运行的容器比分配的核心多。它只考虑记忆。

public int computeAvailableContainers(Resource available, Resource required) {
// Only consider memory
return available.getMemory() / required.getMemory();
  }

使用优势资源计算器,它使用cpu和内存。
设置为capacity-scheduler.xml中的以下配置

yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator

有关支配资源计算器的详细信息

相关问题