最简单有效的方式来输出hadoop mapreduce的输出

时间:2012-08-16 13:27:39

标签: java hadoop zip gzip

我可以用

将mapreduce输出压缩到gzip
"mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec"

为hadoop实现zip编解码器是否直截了当? Zip是容器,但每个存档只需要一个文件,因此使用ZipCodec接口创建CompressionCodec是否容易?

或者,也许有一种将gz文件转换为zip的有效方法,因为它们可以使用相同的deflate算法?

1 个答案:

答案 0 :(得分:2)

没什么大不了的,你可以换一个java.util.zip.ZipOutputStream

您可以通过实施自己的编解码器来完成此操作,这可以通过扩展org.apache.hadoop.io.compress.DefaultCodec

来完成

在此编解码器中,您可以通过分别org.apache.hadoop.io.compress.CompressorStream扩展org.apache.hadoop.io.compress.DecompressorStream来包装java zip流。

最后,您必须覆盖createInputStreamcreateOutputStream方法,并在那里返回包装流的新实例。

仍然有点编码,我很确定必须有一个已经存在的实现(我可能还记得它也是在多年前的Hadoop版本中)。

相关问题