拉上拉链的Hadoop MapReduce的

问题描述:

我可以压缩的输出MapReduce的输出与拉上拉链的Hadoop MapReduce的

"mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec" 

gzip压缩的最简单有效的方法会不会是直接实现压缩编解码器的Hadoop? Zip是容器,但每个存档只需要一个文件,那么使用CompressionCodec接口创建ZipCodec会很容易吗?

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

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

你可以通过实现你自己的编解码器来完成这个工作,这是通过扩展org.apache.hadoop.io.compress.DefaultCodec来完成的。

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

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

还是有点编码,我敢肯定在某个地方必须有一个已经存在的实现(我可能记得它也是在几年前的一个Hadoop版本中)。

+0

谢谢,非常有帮助的方向。 – modular 2012-08-16 16:02:35

+0

@Thomas - 任何可能的例子? – Dynite 2012-12-20 10:50:30

+0

我也面临同样的问题。请分享一些代码.. – SUDARSHAN 2017-03-03 05:30:51