FileInputFormat接口实现类

》 FileInputFormat是什么?

用于处理MR程序,读入的文件。

文件是 MapReduce 任务数据的初始存储地。正常情况下,输入文件一般是存储在 HDFS 里面。这些文件的格式可以是任意的:我们可以使用基于行的日志文件,也可以使用二进制格式,多行输入记录或者其它一些格式

那么针对不同的数据类型,MapReduce是如何读取这些数据的呢?

FileInputFormat 常见的接口实现类包括:

TextInputFormat、
KeyValueTextInputFormat、
NLineInputFormat、
CombineTextInputFormat和
自定义InputFormat等。

TextInputFormat

TextInputFormat 是默认的 InputFormat。每条记录是一行输入。
键是LongWritable 类型,存储该行在整个文件中的字节偏移量。值是这行的内容

不包括任何行终止符(换行符合回车符),它被打包成一个 Text 对象。
以下是一个示例,比如,一个分片包含了如下4条文本记录。

Rich learning form
Intelligent learning engine
Learning more convenient
From the real demand for

每条记录表示为以下键/值对:

(0,Rich learning form)
(19,Intelligent learning engine)
(47,Learning more convenient)
(72,From the real demand for more close to the enterprise)

可以复制以上文本内容,然后打印MR的Map类的map方法内的key,可以验证LongWritable key 指定的是字节偏移量