3

mapreduce の出力を gzip に圧縮するには、

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

Hadoop に zip コーデックを実装するのは簡単ですか? Zipはコンテナですが、アーカイブごとに1つのファイルしか必要ないのでZipCodecCompressionCodecインターフェイスで簡単に作成できますか?

または、同じ圧縮アルゴリズムを使用できるため、gzファイルをsに変換する効率的な方法があるのでしょうか?zip

4

1 に答える 1

3

大したことではありませんjava.util.zip.ZipOutputStream

独自のコーデックを実装することでこれを行うことができます。これは を拡張することによって行われorg.apache.hadoop.io.compress.DefaultCodecます。

このコーデックでは、org.apache.hadoop.io.compress.CompressorStreamそれぞれを拡張して Java zip ストリームをラップしますorg.apache.hadoop.io.compress.DecompressorStream

最後にcreateInputStreamandcreateOutputStreamメソッドをオーバーライドし、そこにラップされたストリームの新しいインスタンスを返す必要があります。

まだ少しコーディングしていますが、どこかにすでに実装が存在するはずです (数年前の Hadoop リリースにもあったことを思い出すかもしれません)。

于 2012-08-16T14:59:40.047 に答える