優化yarn在任務執行時核數把控不準確的問題

2021-10-21 21:07:14 字數 855 閱讀 4427

核數不准這個事情是個概率問題,如果你碰見了,只能說你有點非歐,本質上是因為集群配置問題,預設時yarn不會去精準把控任務的核數,因為預設的資源計算方式是用實際記憶體去估算核數,這就導致如果大家配置任務時,如果實際記憶體占用比較多,yarn的資源計算可能結果就會和實際的產生誤差,導致資源的使用出現各種問題

如果你想要讓yarn準確的計算使用多少核,那麼需要更改所有節點中的capacity-scheduler.xml配置檔案

原配置檔案中的

yarn.scheduler.capacity.resource-calculator

org.apache.hadoop.yarn.util.resource.defaultresourcecalculator

要修改為

yarn.scheduler.capacity.resource-calculator

org.apache.hadoop.yarn.util.resource.dominantresourcecalculator

這樣大家再去看的時候就會發現核數也是正確的了,其實yarn之所以這樣,想想也好理解,核數是定死的,但是記憶體本質上由於前面說的最小申請資源數和規整化因子的原因,使得記憶體其實是不飽滿的,所有yarn時刻注意記憶體的理論使用情況,從而沒有太多注意核數和continer,以此為程式設計師提供乙個可參考的記憶體數字,不然記憶體不夠會oom的!!!

不過大家也不用太擔心,yarn的資源計算問題也就只有這個了,只要大家配置和使用的工具沒問題,就不會出現其他的奇葩問題了,我做研發到現在,遇到的問題只有因為配置而核數不對,記憶體和continer還沒有遇到過莫名其妙不對的時候,這次的核數也是因為我之前研發的時候發現的,由於核數不對,導致資源三大件記憶體,核數,continer數對不上

StopWatch任務執行時間監控

在最近 codereview中,發現 中大量使用了stopwatch 這個類去監視執行的時間。這裡總結一下大概的介紹。stopwatch 在spring中和apache中均提供了類似的功能,這裡分別介紹一下。stopwath是apache commons lang包下的乙個任務執行時間監視器,具體位...

FreeRTOS任務執行時間資訊統計

以下兩個函式都是任務執行時間資訊統計函式 include sys.h include delay.h include usart.h include led.h include timer.h include key.h include string.h include freertos.h inc...

FreeRTOS任務執行時間資訊統計

相關巨集的設定 configgenerate run time stats 使能 portconfigure timer for run time stats 配置乙個高精度定時器 計數器提供時基 portget run time counter value 讀取時間值 實驗舉例 char runt...