split --> Record Reader --> map --> partition --> combine(Local Reduce)
split:用於將HDFS中的文件分塊,並完成分塊文件到各個map任務的映射。
Record Reader:因爲每一個map函數的輸入輸出參數都是key value pair。Record Reader做的事情就是依次讀取分塊文件中的每一行,將每一行作爲一個value,而對應的key就是行號。然後每次將此kvp傳遞給map函數處理。
map:由用戶生成的計算,用於處理文件。
partition:每次用戶處理完一個kvp,存儲的時候,後臺都會進行一個partition,partiton的作用就是依照key進行hash,確定此kvp究竟要存放到哪一個partition文件中。因爲map執行完之後,有幾個reduce函數就會對應生成幾個partiton文件,每一個reduce對應獲取一個文件,獲取的方式爲http。
combine:就是在map完成之後就行一個本地的reduce。一般是沒有這一步的,但是用戶可以設定。
原文地址:http://luluq1987.blog.163.com/blog/static/40790681201121934352484/