1. 程式人生 > 其它 >flink調優_yarn動態分配cpu資源

flink調優_yarn動態分配cpu資源

由於yarn預設容器資源為最小核心數,即一個cpu,

所以我們要根據並行度去調整分配的cpu資源

程式如下:指定並行度為5,指定每個TM的slot數為2

-p 5 \

 -Dtaskmanager.numberOfTaskSlots=2 \

所以雖然配置了2個slot(併發度為2),但是兩個task不能同時執行,因為只有一個cpu

檢視yarn的ui,可以看到只用到了4個cpu。

因為我們是5個並行度,所以需要至少3個tm才能執行(3個tm有6個slot)。所以用到的cpu=tm的數量*tm分配的核心數+一個jm使用的cpu=3*1+1=4

 

 

開啟配置檔案capacity-scheduler.xml,將defaultResourceCalculator註釋掉,將下面的DominantResourceCalculator的註釋去掉。yarn將動態調整容器內的cpu資源,由於我們設定了slot為2,yarn會調整成2個

 

重啟程式,開啟ui檢視,使用的cpu核心數變成了7個   ,因為是  3*2+1

 

 

我們還可以強行指定yarn的核心數,這裡指定為3

-Dyarn.containers.vcores=3 \  

ui如下:


 使用的cpu變成了10個,因為每個tm被分配了3個核心,3*3+1=10