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