- 输入数据接口:InputFormat
- 默认使用TextInputFormat
- TextInputFormat:一次读取一行,行起始偏移量作为key,行内容作为value
- KeyValueInputFormat:一次读取一行,使用分割符分割key和value
- NLineInputFormat:按照指定的行数N来划分切片
- CombineTextInputFormat;把多个小文件合并成为一个大文件
- 自定义InputFormat
- 逻辑处理接口:Mapper
- 分区:Partitioner
- 默认使用:HashPartition,根据key的哈希值来返回分区号
- 可以自定义分区方法
- 排序:Comparabl
- Bean对象实现WritableComparable接口,重写compareTo方法
- 合并:Combine
- 提高程序执行效率(减少网络传输的消耗)
- 使用时不能影响原业务处理结果(不能求平均值)
- 分组:GroupingComparator
- 实现分组可以将key不同或不完全相同的bean对象进入同一个reduce方法
- 逻辑处理接口:Mapper
- 输出数据接口:OutputFormat
- 默认使用TextOutputFormat
- TextOutputFormat:将每个kv对输出为文本文件的一行
- SequenceFileOutputFormat:作为后一个MapReduce任务的输入
- 自定义OutputFormat