Hadoop MapReduce做業的生命週期----Hadoop技術內幕學習筆記

一、做業提交與初始化。用戶提交做業後,首先由JobClient實例將做業相關信息,好比將程序jar包、做業配置文件、分片元信息等上傳到分佈式文件系統,其中,分片元信息文件記錄了每一個輸入分片的邏輯位置信息。而後JobClient經過RPC通知JobTracker。JobTracker收到新做業提交請求後,有做業調度模塊對做業進行初始化:爲做業建立一個JobInProgress對象以跟蹤做業運動情況,而JobInProgress則會爲每一個Task建立一個TaskInProgress對象以跟蹤每一個任務的運行情況,TaskInProgress可能須要管理多個」Task運行嘗試「TaskAttempt。
架構

二、任務調度與監控。任務調度與監控均由JobTracker完成。TaskTracker週期性地經過Heartbeat向JobTracker彙報本節點的資源使用狀況。一旦出現空閒資源,JobTracker會按照必定的策略選擇一個合適的任務使用該空閒資源,這由任務調度器完成。任務調度器是一個可插撥的獨立模塊,且爲雙重架構,即首先選擇做業,而後從該做業中選擇任務,其中選擇任務時須要考慮任務本地性。分佈式

此外,JobTracker跟蹤做業的整個運行過程,併爲做業的成功提供全方位的保障。首先TaskTracker或Task失敗是轉移計算任務;其次,但某個Task的執行進度遠落後於同一做業的其它Task時,爲之啓動一個相同Task,並選取計算快的Task做爲最佳結果。操作系統

三、任務運行環境準備。運行環境準備包括JVM啓動和資源隔離,均由TaskTracker實現。TaskTracker爲每一個Task啓動一個獨立的JVM以免不一樣Task在運行過程當中相互影響;同時,TaskTracker使用了操做系統進程實現資源隔離以防止Task濫用資源。對象

四、任務執行。TaskTracker爲Task準備好運行環境後,便會啓動Task。在運行過程當中,每一個Task的最新進度首先由Task經過RPC彙報給TaskTracker,再由TaskTracker 彙報給Jobtracker.生命週期

五、做業完成。待全部Task執行完畢後,整個做業執行完成。進程

瞭解了整個做業的生命週期,不由想立馬日後翻了解更多東西,這真是本好書。資源

相關文章
相關標籤/搜索