新方案的主要優點在於:html
- 可伸縮性:支持6000臺機器所構成的集羣,每臺機器擁有16個核心、48GB的RAM、48TB的磁盤大小、100k的併發任務及10k的併發job。
- 可用性:目前的Job Tracker是單失敗點,升級須要中止整個集羣才行。
- 敏捷性:新的設計將map-reduce做爲一個用戶庫,這樣同一個集羣中所運行的job就可使用不一樣的版本了。
- 更低的延遲:新的設計考慮到了更快的響應、特別是對於小範圍的任務。
- 更好的利用率:毫無疑問,更加精細化的資源與調度模型能夠下降資源的浪費。
- 支持多種編程模型:Murthy說Yahoo內部但願支持其餘範式的呼聲愈來愈高,如MPI。
這次從新設計的主旨在於將職責劃分爲通用的集羣資源管理系統,同時還有一個針對map-reduce的獨立應用master,實際上能夠是任何的編程模型。這將替換掉Job Tracker和Task Tracker。資源管理系統包含以下集羣範圍內的控制器:java
- 一個ResourceManager,執行集羣範圍內的資源調度,如內存、CPU、磁盤、網絡等等。
- 一個Scheduler插件,能夠針對ResourceManager實現不一樣的策略(相似於目前的scheduler API,但卻擁有不一樣的接口,而且須要新的實現)。
- 每一個應用一個ApplicationMaster(好比map-reduce編程),能夠請求資源、追蹤進度、處理失敗,而且能夠保持計算狀態。
下一代的MapReduce架構。來自於Yahoo編程
能夠分佈於各個worker節點上,有:網絡
- 一個共享的NodeManager,能夠訪問work節點資源(好比說,經過認證請求並開啓任務)。
- 每一個應用的Containers(相似於任務),使用本地資源進行計算。
這次從新設計考慮到了:MySQL HandleSocket技術在SNS Feed存儲中的應用架構
- 經過使用ZooKeeper保存集羣狀態而實現的高可用性,能夠快速實現故障恢復,轉向備份資源管理器上。任何 ApplicationMaster均可以將狀態放到HDFS中。好比說若是出現崩潰,map-reduce Application Master就會將狀態保存起來而且能夠快速恢復。
- 經過定義良好的wire協議實現向後兼容性,考慮到了同一個集羣中的ResourceManager和NodeManager不斷增長、 同時運行不一樣版本的map-reduce或是其餘編程範式狀況下的更新問題。Arun說到,Yahoo!研究員常常會運行MPI、Master- Worker和迭代模型,這麼作考慮到了編程模型上的更新,如Hadoop在線原型。
- 更好的利用率,替換掉了固定的map並使用一種模型減小了資源佔用,該模型利用了底層的資源,如磁盤和CPU以免浪費或是防止競爭。