2016-06-11 10 views
0

豚を使ってhdfsデータをbzip2に圧縮する方法は、最初に持っていたのと同じdir構造を与えるようにしてください。bzip2のhdfsデータを圧縮および解凍するためのスクリプト

私はbzip2で圧縮しようとしましたが、多くのマッパーがスポーンされているため多くのファイルが生成されていましたので、同じdir構造のプレーンテキストファイル(初期形式)に戻すのが難しくなります。

tarballを使用してbzip2を圧縮した後、bzip2.tarを解凍した後は、最初は全く同じデータとフォルダ構造になっています。

例えば圧縮: - タール-cjf compress_folder.tar.bz2 compress_folder/

解凍: - タール-jtvf compress_folder.tar.bz2

がまったく同じディレクトリSTを与えるだろう。

答えて

0

アプローチ1:

あなたはhdfs上の唯一の1ファイルを格納するための1つの減速を実行してみてくださいすることができます。ここではパフォーマンスが妥協するでしょう。

set output.compression.enabled true; 
SET mapred.output.compression.codec 'org.apache.hadoop.io.compress.BZip2Codec'; 

ファイル

STORE file INTO '/user/hduser/data/usercount' USING JsonStorage(); 

を格納しながらちょうど結局あなたもしたいJsonStorageを使用する - :、データを圧縮するこの方法を試していない場合は、豚のスクリプトでこれらのパラメータを設定する

set default_parallel 1; 

データを読み込み、TextLoaderを使用

data = LOAD '/user/hduser/data/usercount/' USING TextLoader; 

アプローチ2:

filecrush: file merge utility available at @Mr. github

関連する問題