最简单有效的方式来的Hadoop MapReduce的zip压缩输出(Easiest efficie

2019-09-21 06:23发布

我可以压缩MapReduce的输出,为gzip

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

将它直接实现Hadoop的压缩编解码器? Zip是容器,但我需要每个归档只有一个文件,因此它很容易创建ZipCodecCompressionCodec接口?

或者,也许有转换的有效途径gz文件zip S,因为他们可以使用相同的deflate算法?

Answer 1:

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

您可以通过实现自己的编解码器,而扩展做为此org.apache.hadoop.io.compress.DefaultCodec

在此编解码器包你通过扩展Java拉链流org.apache.hadoop.io.compress.CompressorStream分别org.apache.hadoop.io.compress.DecompressorStream

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

还是有一点的编码,我敢肯定,必须有一个已经存在的地方实施(我可能还记得它也是在一个Hadoop发行年前)。



文章来源: Easiest efficient way to zip output of hadoop mapreduce