无法配置 Pig 将中间文件存储为 LZO 格式

Posted

技术标签:

【中文标题】无法配置 Pig 将中间文件存储为 LZO 格式【英文标题】:Cannot configure Pig to store intermediate file into LZO format 【发布时间】:2013-12-05 22:49:25 【问题描述】:

我正在学习Pig,我想将中间结果存储为LZO格式。

我已经成功下载、编译并安装了lzo codecs

当我尝试使用此命令运行 PigLatin 脚本时:

pig
-Djava.library.path=<path to the lzo library> 
-Dpig.tmpfilecompression=true 
-Dpig.tmpfilecompression.codec=lzo org.apache.pig.Main  myscript.pig

失败,报此错误:

 ERROR org.apache.pig.tools.grunt.GruntParser - ERROR 2997: Encountered IOException. LZO codec class not specified. Did you forget to set property io.compression.codec.lzo.class?

我也尝试过使用core-site.xmlmapred-site.xml,但我无法解决问题。

谁能帮我修一下?

【问题讨论】:

-Djava.library.path= 你是不是真的把这条线如图所示?? 【参考方案1】:

-Djava.library.path= lzo 库的路径

你真的把线如图所示吗?如果是,请给它 lzo 库的路径。如果您对其他压缩没问题,只需使用 .zip 扩展名更改输出文件名并运行相同的 pig 脚本,而无需覆盖任何压缩属性,前提是您使用的是 0.9 或更高版本的猪。

【讨论】:

以上是关于无法配置 Pig 将中间文件存储为 LZO 格式的主要内容,如果未能解决你的问题,请参考以下文章

使用 ORC 格式的 LZO 压缩

Pig - 读取存储为 Avro 的 Hive 表

可以使用 PIG 读取的文件格式

Hadoop 2.7.2 上的 Pig-0.16.0 - 错误 1002:无法存储别名

尝试使用 LzoPigStorage 和大象鸟加载索引 LZO 文件

如何使用 PIG 将 Avro 格式存储在 HDFS 中?