纱线客户端上的Spark执行程序不执行执行程序核心数量配置。
答
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
+0
谢谢谢克尔。它确实有帮助。 –
您可以发布工作的例子吗? –
以下是火花配置: –
以下是火花配置:spark.executor.cores = 2和spark.executor.instances = 5。纱线中启动的执行器数量为5个,但每个只使用1个内核。驱动程序UI中的Spark属性显示executor核心为2,但在Yarn UI中,它显示每个容器(执行程序)使用1个核心。 –