2017-05-29 14 views
0

私は圧縮し、hdfsからfsにエクスポートするたくさんのファイルとサブディレクトリを含むディレクトリを持っています。Hadoopディレクトリを単一のgzipファイルに圧縮するには?

私はこの質問に出くわした - Hadoop: compress file in HDFS? が、それはファイルのみに関連だし、Hadoopのストリーミングを使用するように思えるとGzipCodecは私のディレクトリとは成功を与えませんでした。

HDFSフォルダを1つのgzipファイルに圧縮する最も効率的な理由は何ですか?
ありがとうございます。

+0

することはできません 'gzip' A:あなたが唯一の迅速な勝利:)
さらに読書のために、恒久的な解決策として、これを使用したくないかもしれません
ご注意くださいUnixのFSでも最初にそれを 'tar/har'やそのようなものに変換してから圧縮を行う必要があります。 – philantrovert

+0

@philantrovertもちろん、そうする方法についてアドバイスはありますか? –

+0

私はapacheを使ってJavaプログラムを書くことを提案したい。それはあなたが調べることができる 'TarArchiveOutputStream'のようなクラスを持っています。 – philantrovert

答えて

0

ディレクトリ構造内のファイルからtarストリームを作成するには、ライブラリが必要です。 zlibを使用してtarストリームを圧縮し、標準の.tar.gzファイルを作成することができます。

このような複数のタスクの結果をマージする場合は、1)gzipストリームを連結して有効なgzipストリームを作成し、2)タールストリームを連結して有効なタールを作ることができますストリームの場合最後の非ゼロタールストリームから1024バイトを削除します。