[YARN] 編程模型-MR

本文會首先介紹Yarn上如何支持MapReduce編程模型,然後再闡述在Yarn上構建的編程模型和運行時環境的方法,最後總結使用Yarn構建分佈式系統的一些高級特性。

Yarn支持MapReduce編程模型

     經過對編程模型的分析,編程模型是由作業執行邏輯、數據組織方式以及中間數據傳輸模式三個部分確定。Hadoop1.0版本,運行時環境和編程模型緊耦合,也就是編程模型這三部分全部耦合在分佈式執行框架中,因此,原Hadoop框架對於MapReduce的處理邏輯固定爲map->sort->shuffle->reduce的過程,執行任務分爲MapTaskReduceTask。爲了對比Hadoop1.0Yarn支持MapReduce編程模型的不同,我們在下文中分別介紹這兩種方式。

Hadoop1.0版本支持MapReduce編程模型的方式

     HadoopJT-TT體系架構,JobSubmitter利用RPC proxy調用JobTracker實現的JobSubmissionProtocol接口,提交作業到JobTracker,在與TaskTracker的心跳交互過程中實現任務的分配和調度。



下面以一個作業的生命週期爲主線,介紹Hadoop1.0運行時環境如何支持一個MR作業的執行。

(1)       JobClient初始化作業。根據用戶和系統的配置,創建作業相關的JobConf信息,爲作業創建臨時工作目錄,對輸入數據集進行切分,確定MapTask的個數,拷貝相關文件到JobTracker指定的文件系統。經過JobClient的初始化過程,作業執行的環境、和作業執行的相關信息已經準備就緒。

(2)       JobTrackerTaskTracker交互過程,調度作業內子任務,維護作業和任務狀態信息。



 JobInProgress維護了每一個作業的生命週期,它定義作業的4類子任務,分別爲setupmapsreducescleanupTaskTrackerJobTracker發送心跳信息,包含節點資源狀況、以及部署到TaskTracker上任務執行狀況的信息。TaskSchedulerassignTasks(TaskTracker)JobInProgress獲得子任務,與TaskTracker進行條件匹配(例如Data-LocalRack-Local等),選出的任務以及對於作業的清理工作會被封裝成Action,作爲JTTT心跳調用的返回信息。

 

(3)       TT執行子任務。TaskRunner的個數是系統之前配置的Map-slotReduce-slot個數決定的。根據TaskRunner執行任務的狀況,TT會及時向JT反饋結果。

 

總結一下,Hadoop1.0使用JobInProgressJobTracker維護的作業和任務的狀態解析MapReduce作業,MapReduce編程模型被緊耦合在運行時環境中。

Yarn支持MapReduce編程模型的方式

Yarn是支持編程模型可擴展的分佈式資源平臺。Yarn維護NM節點內資源的狀態信息,負責NM節點資源的申請與釋放,YarnContainer爲資源分配和使用的基本單位,配置資源使用的閾值,保證資源使用不越界。Yarn中提交的每一個作業對應一個Application,在RM-NM中創建AM執行作業邏輯控制,維護整個作業生命週期內任務的調度、資源申請等操作。MapReduceAM實例由org.apache.hadoop.mapreduce.v2.app.MRAppMaster類來指定。它的啓動過程和一般的ApplicationMaster啓動過程類似,如下圖所示。

 




MR作業生命週期內,MRAppMaster負責作業的管理工作,執行流程如下圖所示。


上圖經過TaskAttempt一旦分配到Container,會在Container內啓動MapTaskImpl或者ReduceTaskImpl,從而啓動mapreduce過程。至此,Yarn就可以支持MapReduce編程模型了。

    Yarn支持MapReduce編程模型,是將MapReduce作業內任務狀態的維護和調度控制交由MRAppMaster實現。MRAppMasterHadoop1.0JobTracker對比關係如下。

 

 

Hadoop1.0

Hadoop-Yarn

調度過程

TT-JT心跳互聯,JobClient提交作業,通過JobInProgressTaskScheduler,完成任務與TT匹配和啓動。

org.apache.hadoop.mapreduce.v2.

app.rm.RMContainerAllocator負責作業內任務和Container的匹配過程。

 

資源單位

Slot

Container

整體執行流程

中心控制模式

狀態機模式




轉自: http://blog.sina.com.cn/s/blog_4a1f59bf01014b83.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章