MR 筆記一

1.MapReduce編程規範及示例編寫
Mapper
    用戶自定義一個Mapper類繼承HadoopMapper
    Mapper的輸入數據是
KV對的形式(類型可以自定義)
    Map階段的業務邏輯定義在
map()方法中
    Mapper的輸出數據是
KV對的形式(類型可以自定義)
注意:
map()方法是對輸入的一個KV對調用一次!!  簡單點說 在讀取文本的時候 每一行數據會觸發一次Map任務
舉個栗子 wordcount:

LongWritable, Text, Text, IntWritable
LongWritable:讀取文本的偏移量(行級偏移量)
Text:讀取文本一行的數據
Text:map的輸出
IntWritable:計數 比如說一個單詞算一次 那麼就算1
 

Reducer類
    用戶自定義Reducer
類要繼承HadoopReducer
    Reducer的輸入數據類型對應
Mapper的輸出數據類型(KV對)
    Reducer的業務邏輯寫在
reduce()方法中
Reduce()方法是對相同K的一組KV對調用執行一次 涉及到多路歸併排序 到reduce的數據會是hello,<1,1,1,1,1>
所以在重寫reduce方法時values是一個迭代器:
Text key, Iterable<IntWritable> values, Context context
舉個栗子 wordcount:
Text, IntWritable, Text, IntWritable
Text, IntWritable:map的輸出
Text:reduce的輸出
IntWritable:最終的計數

Driver階段
創建提交YARN
集羣運行的Job對象,其中封裝了MapReduce程序運行所需要的相關參數入輸入數據路徑,輸出數據路徑等,也相當於是一個YARN集羣的客戶端,主要作用就是提交我們MapReduce程序運行

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