从MapReduce压缩输出文件而不合并它们

时间:2015-12-11 09:17:22

标签: hadoop mapreduce zip multipleoutputs

我有一个MR作业,它使用多输出格式并输出500个文件。我想压缩这些文件而不合并它们。

1 个答案:

答案 0 :(得分:0)

您必须使用 SequenceFileOutputFormat :一个OutputFormat,它以二进制(原始)格式将值,值写入SequenceFiles

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的工作example