-1

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

4

1 回答 1

0

您必须使用SequenceFileOutputFormat:以二进制(原始)格式将键、值写入 SequenceFiles 的 OutputFormat

您可以在 SequenceFile.CompressionType 中有三种变体

BLOCK:将记录序列压缩在一起。

NONE:不压缩记录。

RECORD:仅压缩值,每个单独。

代码中的关键更改。

Path outDir = new Path(WORK_DIR_PREFIX + "/out/" + jobName);

job.setOutputFormatClass(SequenceFileOutputFormat.class);

SequenceFileOutputFormat.setOutputPath(job, outDir);

SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);

查看有关 SequenceFileOutputFormat 用法的工作示例

于 2015-12-11T11:01:57.553 回答