WholeFileInputFormat 和WholeFileRecordReader合并小文件
如果不希望文件被切分,例如判断文件中记录是否有序,可以让minimumSize值大于最大文件的大小,但是文件的大小不能超过blockSize,或者重写FileInputFormat方法isSplitable()返回为false。下面介绍将多个小文件合成一个大的序列文件的例子: 1) 自定义完整文件输入处理类如下: Public class WholeFileInputFormat extends FileInputFormat<NullWritable, ByteWritable> { @override//不得分片 protected boolean isSplitable(JobContext context,Path file){return false;} @override public RecordReader<NullWritable,BytesWritable> createRecordReader ( InputSplit split,TaskAttemptContext context )throws IOException,InterruptedException { WholeFileRecordReader reader=new WholeFileRecordReader(); reader.initialize(split,context);