一个典型的MapReduce程序的处理过程如下:1
2map: (K1, V1) -> list(K2, V2)
reduce: (K2, list(V2)) -> list(K3, V3)
如果不设置mapreduce.inputformat.class
,那么会使用TextInputFormat
来处理输入。
抽象类org.apache.hadoop.mapreduce.InputFormat<K, V>
声明了两个抽象方法
1.getSplits
返回一个InputSplit
集合
2.createRecordReader
返回一个RecordReader<K,V>
一个InputSplit
表示被一个单独Mapper
处理的数据,RecordReader
则可以迭代返回InputSplit
内容成Key-Value
对给Mapper
的Map
函数处理