keyin:輸入的key是maptask所讀取到的一行文字的起始偏移量,long
valuein:輸入的value的型別,輸入的value是maptask所讀取到的一行文字內容,string
keyout:我們在本邏輯中輸出單詞做key,string
valueout:我們在本邏輯中輸出1作value,integer
但是,在mapreduce中,maptask輸出的key,value需要經過網路傳給reducetask,所以,這些key物件,value物件,都要可以被序列化和反序列化,雖然long、string等jdk中的資料型別都實現了serializable介面,可以被序列化,但是serializable序列化機制產生的序列化資料相當臃腫,會大大降低網路傳輸的效率,所以hadoop專門設計了一套序列化機制,介面為writable,那麼maptask輸出給reducetask的key-value都必須實現writable介面
long --> longwritable
string --> text
integer --> intwritable
double --> doublewritable
在客戶端的程式中可以設定reducetask 的執行例項數量
job.setnumreducetasks(2);//預設是1
mapreduce新舊api對比
對比 hadoop版本1.x 新版,hadoop版本0.x 舊版 1.新api引用包一般是mapreduce 舊版api引用的包一般是mapred 2.新api使用job,舊版api使用jobconf 3.新api類的包名使用mapreduce,舊版api使用mapred 4.新api使用job.w...
MapReduce的程式設計規範
mapreduce 的開發一共有八個步驟,其中 map 階段分為 2 個步驟,shuffle 階段 4個步驟,reduce 階段分為 2 個步驟 map 階段 2 個步驟 1.設定 inputformat 類,將資料切分為 key value k1和v1 對,輸入到第二步 2.自定義 map 邏輯,...
MapReduce程式設計模型
計算採用一組輸入鍵 值對,並產生一組輸出鍵 值對。mapreduce庫的使用者將計算表達為兩個函式 map和reduce。input1 map a,1 b,1 c,1 input2 map b,1 input3 map a,1 c,1 reduce c,2 reduce b,2 reduce a,2...