前言
hadoop2.x對於計算框架進行改變,這裏作一個對比,方便深刻的瞭解mapreduce的運行機制,從而爲後面的計算優化作好鋪墊。java
架構圖

hadoop 1.x

hadoop 2.x
架構總結

優點
Yarn 框架相對於老的 MapReduce 框架什麼優點呢?咱們能夠看到:編程
- 這個設計大大減少了 JobTracker(也就是如今的 ResourceManager)的資源消耗,而且讓監測每個 Job 子任務 (tasks) 狀態的程序分佈式化了,更安全、更優美。
- 在新的 Yarn 中,ApplicationMaster 是一個可變動的部分,用戶能夠對不一樣的編程模型寫本身的 AppMst,讓更多類型的編程模型可以跑在 Hadoop 集羣中,能夠參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
- 對於資源的表示之內存爲單位 ( 在目前版本的 Yarn 中,沒有考慮 cpu 的佔用 ),比以前以剩餘 slot 數目更合理。
- 老的框架中,JobTracker 一個很大的負擔就是監控 job 下的 tasks 的運行情況,如今,這個部分就扔給 ApplicationMaster 作了,而 ResourceManager 中有一個模塊叫作 ApplicationsMasters( 注意不是 ApplicationMaster),它是監測 ApplicationMaster 的運行情況,若是出問題,會將其在其餘機器上重啓。
- Container 是 Yarn 爲了未來做資源隔離而提出的一個框架。這一點應該借鑑了 Mesos 的工做,目前是一個框架,僅僅提供 java 虛擬機內存的隔離 ,hadoop 團隊的設計思路應該後續能支持更多的資源調度和控制 , 既然資源表示成內存量,那就沒有了以前的 map slot/reduce slot 分開形成集羣資源閒置的尷尬狀況。
這裏slot是計算資源的一個邏輯單位,原來slot基本上按照cpu來分配的,後面的版本是按照內存來處理的。安全