1. 程式人生 > >[Hadoop]-MapReduce-使用篇

[Hadoop]-MapReduce-使用篇

上下 str ext TP 排序 input 數據 void throws

1.Mapper

  1.1 泛型參數

    Mapper有四個泛型參數,Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>:

      KEYIN:默認讀取的一行文本的起始偏移量.Long類型,在Hadoop中包裝成LongWriteable

      VALUEIN:默認讀取的一行文本的字符串信息.String類型,在Hadoop中包裝為Text.

      KEYOUT:用戶map函數後,輸出的Key的類型.

      VALUEOUT:用戶map函數後,輸出的Value的類型

   (為了適應Hadoop內部的數據傳輸,存儲,排序等,Hadoop對一些基本數據類型都做了封裝,String=>Text,Int=>IntWriteable等.實際就是包裝實現Comparable和Writable接口)

  1.2 map函數

    void map(KEYIN key, VALUEIN value, Context context) throws IOException, InterruptedException

    Context map執行的上下文對象,實現TaskInputOutputContext接口.包含map執行過程中的所有信息,比如spilte讀取,path,map結果等等

2.Reducer

  2.1 泛型參數

    Reducer也有四個泛型參數,Reducer<KEYIN,VALUEIN,KEYOUT,VALUEOUT>

      KEYIN:Mapper輸出的Key的類型

      VALUEIN:Mapper輸出的Value的類型

      KEYOUT:Reducer輸出的Key的類型

      VALUEOUT:Reducer輸出的Value的類型

  2.2 reduce函數

    void reduce(KEYIN key, Iterable<VALUEIN> values, Context context) throws IOException, InterruptedException

3.Job

  Job啟動類,包含Job的初始化,Map類和Reduce類的指定等等

  

[Hadoop]-MapReduce-使用篇