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

brc7rcf0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(329)

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

ulydmbyx

ulydmbyx1#

你必须使用 SequenceFileOutputFormat :一种outputformat,以二进制(原始)格式将键、值写入SequenceFile
sequencefile.compressiontype中可以有三种变体
块:将记录序列按块压缩在一起。
无:不压缩记录。
记录:仅压缩每个值。
代码中的关键更改。

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

job.setOutputFormatClass(SequenceFileOutputFormat.class);

SequenceFileOutputFormat.setOutputPath(job, outDir);

SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);

看看sequencefileoutputformat用法的工作示例。

相关问题