我目前正在嘗試了解 cloudera 集群內的資源分配。在我們的組織中,我們使用 FairScheduler ( https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html ),我不確定我是否正確理解了 FAIR 政策。
總結一下我到目前為止的理解。
FIFO:每個作業都獲得它需要的所有資源,因為所有資源都已分配。從這一點開始,應用程式必須等待可用資源,并將按照它們到達時的相同順序執行。
公平:每項作業都公平地分享資源。如果只有 1 個作業到達,它將獲得所有可用資源。如果 2 個作業到達,每個作業獲得 1/2 的資源。
但是如果作業 1 只需要 25% 而作業 2 需要 75% 會發生什么。這會成為問題嗎(1 獲得 25% 但 2 獲得 50%)?或者這會通過最大最小公平性來解決嗎?
DRF:尋求最大化系統中最小的主導份額,然后是第二小的,依此類推。(我知道它更復雜,但我的問題更多地與 FAIR 政策有關)
uj5u.com熱心網友回復:
您的示例并未真正引起爭用,因此無法真正說明 FIFO 和 FAIR 之間的區別。只有當資源請求超過現有容量(資源爭用)時,調度程式策略才會真正發揮作用。(因此,您的 u 和 % 示例將按原樣運行,不會有問題。您不會看到 FIFO 和 FAIR 之間的處理差異)
當第三個作業提交到同一佇列時,策略將嘗試強制執行 3 的“公平資源”。yarn 執行策略的積極程度以及它如何影響作業將取決于您的設定,但會努力“公平地”重新分配資源。
該視頻有助于說明該主題,值得一看。
這是另一篇文章(我沒有創建),它也很好地解釋了不同的調度策略。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/360152.html