我有一个MR作业,它使用多输出格式并输出500个文件。我想压缩这些文件而不合并它们。
答案 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。