2016-06-11 99 views
0

如何使用豬將hdfs數據壓縮到bzip2,這樣在解壓縮時它應該提供與最初相同的dir結構。我是豬新手。豬腳本壓縮和解壓bzip2中的hdfs數據

我試圖使用bzip2進行壓縮,但由於許多映射器正在生成,因此在同一目錄結構中恢復爲純文本文件(初始格式)變得困難,所以它生成了許多文件。

就像在unix中如何使用壓縮包壓縮bzip2然後在bzip2.tar解壓縮後給出的數據和文件夾結構完全相同。

如壓縮 - 焦油-cjf compress_folder.tar.bz2 compress_folder/

減壓: - 焦油-jtvf compress_folder.tar.bz2

會給完全相同目錄ST。

回答

0

方法1:

你可以嘗試運行一個減速器來存儲hdfs只有1個文件。但妥協將在​​這裏表現。

set default_parallel 1; 

壓縮數據,設置在豬腳本這些參數,如果沒有試過這樣: -

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

只使用JsonStorage同時存儲文件

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

最終你也想讀取數據,使用TextLoader

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

方法2:

filecrush: file merge utility available at @Mr. github