2015-10-20 41 views
2

不考慮火花執行器的核心數量,執行器的紗線容器不使用多於1個芯。紗線客戶端上的Spark執行程序不執行執行程序核心數量配置。

+0

您可以發佈工作的例子嗎? –

+0

以下是火花配置: –

+0

以下是火花配置:spark.executor.cores = 2和spark.executor.instances = 5。紗線中啓動的執行器數量爲5個,但每個只使用1個內核。驅動程序UI中的Spark屬性顯示executor核心爲2,但在Yarn UI中,它顯示每個容器(執行程序)使用1個核心。 –

回答

5

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

+0

謝謝謝克爾。它確實有幫助。 –