Hue 上的 Apache Pig 0.12.0 未按预期预处理语句

Posted

技术标签:

【中文标题】Hue 上的 Apache Pig 0.12.0 未按预期预处理语句【英文标题】:Apache Pig 0.12.0 on Hue not preprocessing statements as expected 【发布时间】:2015-06-23 20:17:45 【问题描述】:

我在亚马逊 EMR 上将 Hue 用于 PIG 脚本。 I am using the declare and default statements as mentioned in the documentation.

我有一些 %default 和 %declare 语句,看起来它们是 未在 Hue 中进行预处理。因此,虽然定义了参数 在我的脚本中,编辑器不断弹出参数配置窗口。如果我将参数留空,作业将失败并出现错误。

示例脚本

%declare OUTPUT_FOLDER 'testingOutput01';

ts = LOAD 's3://testbucket1/input/testdata-00000.gz' USING PigStorage('\t');
STORE ts INTO 's3://testbucket1/$OUTPUT_FOLDER' USING PigStorage('\t');

在执行时,它会显示弹出窗口,询问 OUTPUT_FOLDER 的值。如果我将其留空,则会失败并出现以下错误:

2015-06-23 20:15:54,908 [main] ERROR org.apache.pig.Main  - ERROR 2997:
Encountered IOException. org.apache.pig.tools.parameters.ParseException:
Encountered "<EOF>" at line 1, column 12.
Was expecting one of:
<IDENTIFIER> ...
<OTHER> ...
<LITERAL> ...
<SHELLCMD> ...

这是预期的行为吗?这是一个已知问题还是我遗漏了什么?

配置详情:

AMI version:3.7.0
Hadoop distribution:Amazon 2.4.0
Applications:Hive 0.13.1, Pig 0.12.0, Impala 1.2.4, Hue

使用 default 而不是 declare 可以看到相同的行为。

如果您需要任何澄清,请对此问题发表评论。我会根据需要更新它。

【问题讨论】:

色相绝对是一场灾难。我会尝试对实例进行 ssh-ing,并从命令行运行您的 pig 脚本。如果它运行,那么您就会知道这是 Hue 的问题。 好主意。明天我会试试,然后再告诉你结果。我希望它有效。这样我就知道出了什么问题。 Romain 添加了一个答案,确认这是 Hue 中的一个错误。感谢您的帮助! 【参考方案1】:

Hue 不支持使用默认语句的 %declare。它将被修复为:https://issues.cloudera.org/browse/HUE-2508

当前的临时解决方法是在弹出窗口中放置任何值。

【讨论】:

感谢您的链接。这有助于暂时解决它。

以上是关于Hue 上的 Apache Pig 0.12.0 未按预期预处理语句的主要内容,如果未能解决你的问题,请参考以下文章

《深入浅出pig系列之中的一个》pig-0.12.0-cdh5.1.2的安装与执行

无法在 Amazon EMR 集群上使用 PIG 0.12.0 和 Hadoop 2.4.0 找到 MySql 驱动程序

在 Cloudera Hue 中为 Oozie(调用 PIG 脚本)配置正确的端口

Pig 0.12.0 - 从字符串中提取最后两个字符

Windows 上的 Apache Pig 设置错误

使用预先排序的数据加速 Hive 或 Pig 聚合