我有一个MR作业,它使用多重输出格式并输出500个文件。我想压缩那些文件而不合并它们。
您必须使用SequenceFileOutputFormat
:一种以二进制(原始)格式向SequenceFiles写入键和值的OutputFormat
SequenceFile.CompressionType 中可以有三种变体
BLOCK:将记录序列压缩到块中。
无:不压缩记录。
记录:仅压缩值,每个值单独压缩。
在代码中键入更改。
Path outDir = new Path(WORK_DIR_PREFIX + "/out/" + jobName);
job.setOutputFormatClass(SequenceFileOutputFormat.class);
SequenceFileOutputFormat.setOutputPath(job, outDir);
SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);
看看SequenceFileOutputFormat的使用示例。