Hadoop中map端流程分析

1. map端的主要函數有以下幾個:

split --> Record Reader --> map --> partition --> combine(Local Reduce)


2. 以上幾個函數各自的作用如下:

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/

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