一、TextInputFormat
1、TextInputFormat是默认的FileInputFormat的实现类。
2、按行读取每条记录。
3、键:存储该行在整个文件中起始字节偏移量,LongwWritable类型
4、值:这行的内容,不包含任何行终止符(换行符和回车符),Text类型
注意:键的值: 该行第一个字节,在整个文件中的偏移量
二、KeyValueTextInputFormat
1、按行读取
2、被分隔符分为 key, value,第一个是 key,后面是 value
3、分隔符通过驱动类设置
conf.set(KeyValueLineRecordReader.KEY_VALUE_SEPERATOR, " ");
4、默认的分隔符是:
5、key的数据类型:Text,value的数据类型:Text
三、NLineInputFormat
1、mapTask的数量,不是按照Block分,而是按照 文件行数/N, N为行数,若有余数,则加一
2、key的数据类型:LongWritable Value的数据类型:Text
注意:键和值与TextInputFormat一致
四、CombineTextInputFormat
处理小文件,前面已有
五、总结分析
类型 切片 key value
TextInputFile Block LongWritable Text
KeyValueTextInputFile Block Text Text
NLineInputFile 行切片 LongWritable Text
CombineTextInputFile 切片过程 LongWritable Text
自定义InputFile Block Text BytesWritable