我可以用
"mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec"
为hadoop实现zip编解码器会很简单吗?zip是一个容器,但我只需要一个档案,所以它很容易创建 ZipCodec 与 CompressionCodec 接口?或者,也许有一种有效的方法 gz 文件到 zip s、 因为他们可以使用相同的deflate算法?
ZipCodec
CompressionCodec
gz
zip
00jrzges1#
没什么大不了的,你可以包一个 java.util.zip.ZipOutputStream .您可以通过实现自己的编解码器来实现这一点,这是通过扩展 org.apache.hadoop.io.compress.DefaultCodec .在这个编解码器中,您通过扩展 org.apache.hadoop.io.compress.CompressorStream 分别 org.apache.hadoop.io.compress.DecompressorStream .最后你必须重写 createInputStream 以及 createOutputStream 方法并返回 Package 流的新示例。还是一点代码,我很确定一定有一个已经存在的实现在某处(我可能记得它也是在一个hadoop版本数年前)。
java.util.zip.ZipOutputStream
org.apache.hadoop.io.compress.DefaultCodec
org.apache.hadoop.io.compress.CompressorStream
org.apache.hadoop.io.compress.DecompressorStream
createInputStream
createOutputStream
1条答案
按热度按时间00jrzges1#
没什么大不了的,你可以包一个
java.util.zip.ZipOutputStream
.您可以通过实现自己的编解码器来实现这一点,这是通过扩展
org.apache.hadoop.io.compress.DefaultCodec
.在这个编解码器中,您通过扩展
org.apache.hadoop.io.compress.CompressorStream
分别org.apache.hadoop.io.compress.DecompressorStream
.最后你必须重写
createInputStream
以及createOutputStream
方法并返回 Package 流的新示例。还是一点代码,我很确定一定有一个已经存在的实现在某处(我可能记得它也是在一个hadoop版本数年前)。