【问题标题】:Apache Pig 0.12.0 on Hue not preprocessing statements as expectedHue 上的 Apache Pig 0.12.0 未按预期预处理语句
【发布时间】:2023-09-25 03:20:01
【问题描述】:

我在亚马逊 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 中的一个错误。感谢您的帮助!

标签: apache-pig parameter-passing amazon-emr hue


【解决方案1】:

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

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

【讨论】:

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