通过InputFormat,Hadoop可以:
l 检查MapReduce输入数据的正确性;
l 将输入数据切分为逻辑块InputSplit,这些块会分配给Mapper;
l 提供一个RecordReader实现,Mapper用该实现从InputSplit中读取输入的<K,V>对。
通过FileInputFormat。下面几个参数可以用于配置FileInputFormat:
l mapred.input.pathFilter.class:输入文件过滤器,通过过滤器的文件才会加入InputFormat;
l mapred.min.split.size:最小的划分大小;
l mapred.max.split.size:最大的划分大小;
l mapred.input.dir:输入路径,用逗号做分割。
java.lang.Object
org.apache.hadoop.mapreduce.InputFormat<K,V>
org.apache.hadoop.mapreduce.lib.input.FileInputFormat<K,V>
org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat<K,V>
java.lang.Object org.apache.hadoop.mapreduce.InputFormat<K,V> org.apache.hadoop.mapreduce.lib.input.FileInputFormat<LongWritable,Text> org.apache.hadoop.mapreduce.lib.input.TextInputFormat
TextInputFormat: 默认的输入格式,行号为Key,文件中该行的内容为value
SequenceFileInputFormat: key-value 对的二进制文件
通过如下方式进行设置使用:
job.setInputFormatClass(SequenceFileInputFormat.class); job.setOutputFormatClass(SequenceFileOutputFormat.class);