[Hadoop]-MapReduce-使用篇

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类的指定等等

  

猜你喜欢

转载自www.cnblogs.com/NightPxy/p/9145978.html