本篇文章給大家分享的是有關如何進行spark on yarn 的資源調度器設置.,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創新互聯建站主要從事網頁設計、PC網站建設(電腦版網站建設)、wap網站建設(手機版網站建設)、響應式網站設計、程序開發、網站優化、微網站、成都微信小程序等,憑借多年來在互聯網的打拼,我們在互聯網網站建設行業積累了豐富的網站設計制作、網站設計、網站設計、網絡營銷經驗,集策劃、開發、設計、營銷、管理等多方位專業化運作于一體。
最近一段時間 發現了一個問題. 就是即便在整個集群 不忙的時候, 也會某幾個節點, 會被spark on yarn 的任務跑滿.
而不是把任務均勻的分配到到多幾個節點上.
百思不解.
于是開始各個方面的調查. 從spark 方面沒有發現什么問題. 回過頭來看yarn .
發現原來使我們的資源調度的配置上有點問題.
The ResourceCalculator implementation to be used to compare
Resources in the scheduler.
The default i.e. DefaultResourceCalculator only uses Memory while
DominantResourceCalculator uses dominant-resource to compare
multi-dimensional resources such as Memory, CPU etc.
問題就出在這里了. default 調度器, 只關注node 的內存 情況, 根據內存情況來分派任務.
這就是導致, 如果一個spark 任務向yarn 申請container 的時候, yarn 只關注了 某幾個點的內存情況.
如果內存滿足 spark 的要求, 就可能把所有的container 都分派到一個node 去,導致這個node 節點 負載飚高.
比如 spark 申請 10個 1g 內存的container . 然后 yarn 發現有2個節點 各有5g 空閑內存, 但是卻只有3個cpu 空閑.
那么可能就會只有這倆node 來跑這10個container , 而不是把10個container 分配到10個node上去.
然后就出現我們前面說的情況. 內存充足但是cpu不足. 導致spark 的container 只有3個在運行. 另外倆個要等待 .
這也符合我們前面看到的現象.
以上就是如何進行spark on yarn 的資源調度器設置.,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創新互聯行業資訊頻道。