我使用的是Hadoop-2.4.0,我的系统配置是24核、96 GB内存。
我正在使用以下配置
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=-Xmx2048mCapacity Scheduler配置
queue.default.capacity=50
queue.default.maximum_capacity=100
yarn.scheduler.capacity.root.default.user-limit-factor=2使用上面的配置,我预计yarn将在每个节点上启动不超过10个映射器,但它将在每个节点上启动28个映射器。我做错了什么吗??
发布于 2014-08-29 22:46:05
YARN运行的容器比分配的核心多,因为默认情况下使用DefaultResourceCalculator。它只考虑内存。
public int computeAvailableContainers(Resource available, Resource required) {
// Only consider memory
return available.getMemory() / required.getMemory();
}使用DominantResourceCalculator,它同时使用cpu和内存。
在capacity-scheduler.xml中设置以下配置
yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator有关DominantResourceCalculator的更多信息
https://stackoverflow.com/questions/25563736
复制相似问题