MapReduce提交job到Yarn的流程學習

2022-02-09 19:19:50 字數 923 閱讀 2113

(6)在客戶端執行乙個mapreduce程式時,能看到map和reduce任務執行的進度百分比,這個是am在執行initialize job後建立的薄記物件完成的,這個薄記物件會收集執行在分布式各個節點上任務的進度,彙總後定時傳送給client。

(7)在執行mapreduce程式時,會先執行map任務然後再執行reduce任務(預設是執行map任務5%後再執行reduce任務),其中map任務的個數是由分片數決定的,即通過inputformat的getsplit方法得到的分片數,這個分片的資訊需要從hdfs獲取,裡面儲存的是指向實際分片資訊的引用。而reduce任務的個數則是程式中指定的,通過setnumreduces(num)來指定。

(8)mapreduce任務先執行map task,先以map task為例,後面reduce task執行流程也可參考。當準備執行map task時,am會向rm繼續傳送請求,即resource-request請求,請求獲取計算的nm和container資訊。

(11)在獲取到hdfs的jar包和配置資訊後就開始執行task,如果是map task則輸出的key-value對會儲存到各自的分割槽中去,如果是reduce task則會從對應的map分割槽中拉取資料準備進行合併、排序和分組,最後執行reduce分組計算並輸出到hdfs。不管是map task還是reduce task其都會向am上報執**況。

(12)最後執行完mapreduce任務後,儲存在分割槽中的map輸出資訊將刪除,此外儲存在hdfs中的jar包資訊、配置資訊和分片資訊也將刪除。

以上為mapreduce提交job到yarn的過程,後續再補充完善。

提交官方MapReduce作業到YARN

hadoop使用版本 hadoop 2.6.0 cdh5.15.1 在hadoop 2.6.0 cdh5.15.1 share hadoop mapreduce路徑下有乙個hadoop mapreduce examples 2.6.0 cdh5.15.1.jar檔案 執行命令 hadoop jar ...

MapReduce程式設計job概念原理

在hadoop中,每個mapreduce任務都被初始化為乙個job,每個job又可分為兩個階段 map階段和reduce階段。這兩個階段分別用兩個函式來表示。map函式接收乙個形式的輸入,然後同樣產生乙個形式的中間輸出,hadoop會負責將所有具有相同中間key值的value集合在一起傳遞給redu...

job提交作業流程

呼叫waitforcompletion每秒輪詢作業進度,內部封裝了submit 方法用於建立jobcommit的例項,jobcommit的例項例項會呼叫自己的submitjobinternal提交作業,如果狀態有變化就將作業進度輸出在控制台,如果失敗也會將錯誤輸出 jobcommit會向resour...