Mapreduce的api程式設計

2022-08-01 17:18:10 字數 652 閱讀 3083

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...