【问题标题】:Pig unable to create .bz2 files but creating .deflate filesPig 无法创建 .bz2 文件但创建 .deflate 文件
【发布时间】:2023-03-30 06:07:02
【问题描述】:

这是我用来读取、过滤和压缩 bzip2 中数据的 pig 脚本,但我得到的是 .deflate 文件而不是 .bz2。

set output.compression.enabled true;
set output.compression.codec org.apache.hadoop.io.compress.BZip2Codec;
inputFile = LOAD '/dl/myfolder/' using PigStorage('|') AS (col1,col2,col3,col4,col5,clo6,col7,col8,col9,col10);
filteredFile = FILTER inputFile BY col7 is not null;
store filteredFile into '/dl/myfolder/compressdata/' USING PigStorage('|');

Output file /dl/myfolder/compressdata/part-m-00000.deflate

感谢您的帮助..

【问题讨论】:

    标签: hdfs apache-pig deflate bzip2 hdp


    【解决方案1】:

    遗憾无法更新,因为我们在从 pivotal 升级到 hortonworks 时遇到了这个问题。并发现 mapreduce.map.output.compress = true mapreduce.output.fileoutputformat.compress = true 这些会覆盖会话中的输出格式并始终进行压缩。 将它们设置为 false 后,我们得到了所需的输出

    感谢 Koji/John 的宝贵时间和宝贵意见。

    Koji 根据您的建议,我们有较旧的设计,并且一切都使用 bzip2,因此在下次升级时可以更改为 Lzo :)

    【讨论】:

    • 映射输出压缩(到 lzo)对您来说是不可见的,因为它只是关于中间输出。
    【解决方案2】:

    请尝试将您的输出目录名称更改为以 bz2(或 bz)结尾。

    store filteredFile into '/dl/myfolder/compressdata.bz2/' USING PigStorage('|');
    

    【讨论】:

    • 嗯。你用的是哪个版本的猪?此外,一旦您的输出目录以 bz2 结尾,您就可以取出 output.compression.enabled/output.compression.codec。
    • 我发现你需要类似 SET mapreduce.output.fileoutputformat.compress.codec 'org.apache.hadoop.io.compress.BZip2Codec';除了 SET mapred.map.output.compress.codec 'org.apache.hadoop.io.compress.BZip2Codec';和 SET mapred.output.compression.codec 'org.apache.hadoop.io.compress.BZip2Codec';
    • 我使用的是 Apache Pig 版本 0.15.0
    • 再一次,尝试全力以赴,只需将输出路径设置为 bz2。那应该为 bzip 压缩设置必要的配置。此外,您通常不希望地图输出压缩为 bzip2。对于中间输出压缩,你需要更快的东西,比如 lzo 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2020-06-14
    • 2019-06-06
    • 2021-12-01
    • 2015-07-20
    相关资源
    最近更新 更多