SequenceFileInputFormat区别TextInputFormat
阅读原文时间:2023年07月08日阅读:1

通过InputFormat,Hadoop可以:

l           检查MapReduce输入数据的正确性;

l           将输入数据切分为逻辑块InputSplit,这些块会分配给Mapper;

l           提供一个RecordReader实现,Mapper用该实现从InputSplit中读取输入的对。

通过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
org.apache.hadoop.mapreduce.lib.input.FileInputFormat
org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat

java.lang.Object
org.apache.hadoop.mapreduce.InputFormat
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);