【问题标题】:Easiest efficient way to zip output of hadoop mapreduce压缩hadoop mapreduce输出的最简单有效方法
【发布时间】:2012-08-16 13:27:38
【问题描述】:

我可以将 mapreduce 输出压缩为 gzip

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

为 hadoop 实现 zip 编解码器会很简单吗? Zip是容器,但我每个存档只需要一个文件,那么用CompressionCodec接口创建ZipCodec会很容易吗?

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

【问题讨论】:

    标签: java hadoop zip gzip


    【解决方案1】:

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

    您可以通过实现自己的编解码器来做到这一点,这是通过扩展 org.apache.hadoop.io.compress.DefaultCodec 来完成的。

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

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

    仍然需要一些编码,我很确定某处一定已经存在实现(我可能记得几年前它也在 Hadoop 版本中)。

    【讨论】:

    • 谢谢,很有帮助的指导。
    • @Thomas - 任何可能的例子?
    • 感谢@Thomas,这真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多