无论火花执行器芯数如何,执行器的纱线容器使用的芯数不得超过1芯。
YARN显示每个执行器1个核心,而不管spark.executor.cores
,因为默认情况下使用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的更多信息