【问题标题】:Pig script to compress and decompress the hdfs data in bzip2用于压缩和解压缩 bzip2 中的 hdfs 数据的 Pig 脚本
【发布时间】:2016-06-11 14:15:33
【问题描述】:

如何使用 pig 将 hdfs 数据压缩到 bzip2,以便在解压缩时它应该提供与最初相同的 dir 结构。我是 pig 的新手。

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

就像在 unix 中一样,如果我们使用 tarball 压缩 bzip2,然后在解压缩 bzip2.tar 后,会得到与最初完全相同的数据和文件夹结构。

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

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

将给出完全相同的目录。

【问题讨论】:

    标签: hadoop apache-pig bzip2


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      相关资源
      最近更新 更多