Pig脚本压缩和解压缩bzip2中的hdfs数据

时间:2016-06-11 14:15:34

标签: hadoop apache-pig bzip2

如何使用猪将hdfs数据压缩到bzip2,这样在减压时它应该提供与它最初相同的目录结构。我是猪的新手。

我尝试使用bzip2进行压缩,但由于生成了许多映射器而导致生成了许多文件,因此在同一dir结构中恢复为纯文本文件(初始形式)变得困难。

就像在unix中如果我们使用tarball压缩bzip2然后在bzip2.tar的解压缩后给出了我最初的数据和文件夹结构。

  

例如压缩: - tar -cjf compress_folder.tar.bz2 compress_folder /

     

解压缩: - tar -jtvf compress_folder.tar.bz2

将提供完全相同的目录。

1 个答案:

答案 0 :(得分:0)

方法1:

您可以尝试运行一个reducer来仅存储hdfs上的1个文件。但妥协将是这里的表现。

set default_parallel 1;

压缩数据,在pig脚本中设置这些参数,如果不是这样尝试: -

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

相关问题