1. 程式人生 > >Hadoop執行任務過程

Hadoop執行任務過程

  • Mapper的輸出,如果沒有Reducer,會直接排序輸出到硬碟上,如果有Reducer,Mapper的輸出會首先經過Partitioner的計算,計算輸出的Key,Value是要分到哪一個Reducer,然後會首先儲存在記憶體中,如果記憶體中放不下後,會對這一部分結果進行spill out,在將記憶體中的資料spill out到硬碟的時候,會呼叫SortAndSpill對輸出結果進行排序,以便保證一個檔案中結果是有序的。每次spill out會產生一個檔案,這個檔案中包含多個partition的資料,當產生多個檔案後,會對這多個有序檔案進行歸併排序,即合併操作。此過程會重複直到Mapper所有的值輸出完畢為止,Mapper會一個檔案,此檔案中會先按partition對元組進行排序,然後相同partition中的元祖,會按照key來進行排序。