yarn我們都知道主要是用於做資源排程,任務分配等功能的,那麼在hadoop當中,究竟使用
什麼演算法來進行任務排程就需要我們關注了,hadoop支援好幾種任務的排程方式,不同的場
景需要使用不同的任務排程器.
第一種排程器:fifo scheduler(佇列排程)把任務按提交的順序排成乙個佇列,這是乙個先進先出佇列,在進行資源分配的時候,先給
佇列中最頭上的任務進行分配資源,待最頭上任務需求滿足後再給下乙個分配,以此類推。
fifo scheduler是最簡單也是最容易理解的排程器,也不需要任何配置,但它並不適用於共享
集群。大的任務可能會占用所有集群資源,這就導致其它任務被阻塞。
第二種排程器:capacity scheduler(容量排程器,apache版本預設使用的排程器)
capacity 排程器允許多個組織共享整個集群,每個組織可以獲得集群的一部分計算能力。通
過為每個組織分配專門的佇列,然後再為每個佇列分配一定的集群資源,這樣整個集群就可
以通過設定多個佇列的方式給多個組織提供服務了。除此之外,佇列內部又可以垂直劃分,
這樣乙個組織內部的多個成員就可以共享這個佇列資源了,在乙個佇列內部,資源的排程是
採用的是先進先出(fifo)策略。
第三種排程器:fair scheduler(公平排程器,cdh版本的hadoop預設使用的排程器)
fair排程器的設計目標是為所有的應用分配公平的資源(對公平的定義可以通過引數來設
置)。公平排程在也可以在多個佇列間工作。舉個例子,假設有兩個使用者a和b,他們分別擁
有乙個佇列。當a啟動乙個job而b沒有任務時,a會獲得全部集群資源;當b啟動乙個job後,a
的job會繼續執行,不過一會兒之後兩個任務會各自獲得一半的集群資源。如果此時b再啟動
第二個job並且其它job還在執行,則它將會和b的第乙個job共享b這個佇列的資源,也就是b的
兩個job會用於四分之一的集群資源,而a的job仍然用於集群一半的資源,結果就是資源最終
在兩個使用者之間平等的共享
Yarn三種排程器
理想情況下,我們應用對yarn資源的請求應該立刻得到滿足,但現實情況資源往往是有限的,特別是在乙個很繁忙的集群,乙個應用資源的請求經常需要等待一段時間才能的到相應的資源。在yarn中,負責給應用分配資源的就是scheduler。其實排程本身就是乙個難題,很難找到乙個完美的策略可以解決所有的應用場景。...
Yarn三種排程策略對比
理想情況下,我們應用對yarn資源的請求應該立刻得到滿足,但現實情況資源往往是有限的,特別是在乙個很繁忙的集群,乙個應用資源的請求經常需要等待一段時間才能的到相應的資源。在yarn中,負責給應用分配資源的就scheduler。其實排程本身就是乙個難題,很難找到乙個完美的策略可以解決所有的應用場景。為...
Yarn三種排程策略對比
理想情況下,我們應用對yarn資源的請求應該立刻得到滿足,但現實情況資源往往是有限的,特別是在乙個很繁忙的集群,乙個應用資源的請求經常需要等待一段時間才能的到相應的資源。在yarn中,負責給應用分配資源的就scheduler。其實排程本身就是乙個難題,很難找到乙個完美的策略可以解決所有的應用場景。為...