一个典型的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函数处理