YARN的Fair Scheduler和Capacity Scheduler


關於Scheduler

  YARN有四種調度機制:Fair Schedule,Capacity Schedule,FIFO以及Priority;
  其中Fair Scheduler是資源池機制,進入到里面的應用是共享pool里面的資源;只有當資源配比發生緊張的時候,才會根據權重來進行調整;
  Capacity則是基於隊列的,每個隊列都會被分配資源比例,這種資源比例是固定;所以沒有資源共享的概念
  MapR,cloudera都是默認采用Fair Scheduler,Ambari(Hortonwork)默認使用Capacity Scheduler;
  Fair Scheduler是一個池子的概念,就是來了一個應用就扔到這個池子里面,大家共享這個池子里面的資源;Fair Scheduler提供了一種Weigth的概念,就是比重,最后鬼根據比重來為各個池子分配資源(本質和Capacity里面的capacity一樣);同時她還提供了max resource,min resource的可選配置,就是制定資源下限和上限;這個屬性的配置是可以覆蓋weigth(權重)的。但是並不推薦使用max min資源配置,因為不夠靈活;
  Capacity Scheduler是一個隊列概念,來了一個應用,如果發現資源不夠了,則根據FIFO規則排隊;什么時候資源夠了,再用。
  Fair Scheduler可以配置自動創建pool,但是Capacity則無法創建隊列;其實本質差別就是在於一個是pool共享資源的概念(YARN-3319),一個是queue隊列形式利用資源。或者這么解釋,對於Faire而言,可以使用資源池中未被使用的資源,但是Capacity則不允許;所以前者比較靈活,后者相對古板。但是通過看到Capacity有計划也實現一版fairness appliction;如果真是這樣,那么兩者區別就變得很小了。

參考文章
  https://people.csail.mit.edu/matei/talks/2009/hadoop_summit_fair_scheduler.pdf
  https://www.quora.com/On-what-basis-do-I-decide-between-Fair-and-Capacity-Scheduler-in-YARN
  https://www.quora.com/Apache-Hadoop-Whats-the-difference-between-Fair-Scheduler-and-Capacity-Scheduler

備注

  我發現https://www.quora.com/是一個很牛逼的網站,在瀏覽關於YARN調度器差別的時候,發現回帖的都是apache里面的人!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM