有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java压缩hadoop mapreduce输出的最简单有效方法

我可以用

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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

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

    在这个编解码器中,通过分别扩展org.apache.hadoop.io.compress.CompressorStreamorg.apache.hadoop.io.compress.DecompressorStream来包装java压缩流

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

    还是一点代码,我很确定一定有一个已经存在的实现(我可能记得几年前Hadoop版本中也有)