1. 程式人生 > >餘建新的技術部落格 @ 儲存、大資料平臺

餘建新的技術部落格 @ 儲存、大資料平臺


#Yarn的框架


在Yarn中,JobTracker被分為兩部分:ResourceManager(RM)和ApplicationMaster(AM)。
MRv1主要由三部分組成:程式設計模型(API)、資料處理引擎(MapTask和ReduceTask)和執行環境(JobTracker和TaskTracker);Yarn繼承了MRv1的程式設計模型和資料處理引擎,改變的只是執行環境,所以對程式設計沒有什麼影響。


RM負責資源排程,AM 負責任務排程。


RM負責整個叢集的資源管理與排程;Nodemanager(NM)負責單個節點的資源管理與排程;NM定時的通過心跳的形式與RM進行通訊,報告節點的健康狀態與記憶體使用情況;AM通過與RM互動獲取資源,然後通過與NM互動,啟動計算任務。


在上Yarn的框架管理中,無論是AM從RM申請資源,還是NM管理自己所在節點的資源,都是通過container進行的。Container是Yarn的資源抽象,此處的資源包括記憶體和cup等。


不同角色的作用:
ResourceManager
NodeManager
ApplicationMaster


不同概念
Container


#Yarn執行流程:
1、使用者向YARN中提交應用程式,其中包括ApplicationMaster(AM)程式,啟動AM的命令,使用者程式等。
2、ResourceManger(RM)為該程式分配第一個Container,並與對應的NodeManger通訊,要求它在這個Container
中啟動應用程式AM。
3、AM首先向RM註冊,這樣使用者可以直接通過RM檢視應用程式的執行狀態,然後將為各個任務申請資源,並監控
它的執行狀態,直到執行結束,重複4--7的步驟。
4、AM採用輪詢的方式通過RPC協議向RM申請和領取資源。
5、一旦AM申請到資源後,便與對應的NM通訊,要求它啟動任務。
6、NM為任務設定好執行環境(包括環境變數、JAR包、二進位制程式等)後,將任務啟動命令寫到一個指令碼中,並通過
執行該指令碼啟動任務。
7、各個任務通過某個RPC協議向AM彙報自己的狀態和進度,以讓AM隨時掌握各個任務的執行狀態,從而可以在任務
失敗的時候重新啟動任務。
8、應用程式執行完成後,AM向RM登出並關閉自己。

#參考url
http://blog.csdn.net/showmyheart_libo/article/details/21863599
http://blog.chinaunix.net/uid-28311809-id-4383551.html