0

我正在尝试使用 Oozie 测试运行一个简单的 Hive 脚本,但我不断收到一个我无法理解的错误。

每次我提交作业时,都会收到一条错误消息,上面写着“作业失败,错误消息[参数表达式必须包含分配:jobRequest]”。但是,我已经定义了这个参数,并在我最初提交配置时为其分配了一个值。

有问题的参数是我试图创建的外部配置单元表名。在 Oozie 工作流程中,我在此处定义传递给 Hive 脚本的表名参数:

<param>${hiveTableName}</param>

然后,我创建了一个提交给 oozie 的 job.xml,该参数的值如下所示:

<property>
    <name>hiveTableName</name>
    <value>jobRequest</value>
</property>

有没有其他人遇到过这样的问题,或者知道是什么原因造成的?似乎参数已正确定义和分配,但作业不断失败并出现上述错误消息。如果有帮助,我正在使用的 xml 命名空间是:

<hive xmlns="uri:oozie:hive-action:0.2">
4

1 回答 1

0

我收到一条错误消息,上面写着“作业失败,错误消息[参数表达式必须包含一个赋值:jobRequest]”

它抱怨在参数标记中缺少赋值运算符。查看文档以获取更多详细信息https://oozie.apache.org/docs/3.3.1/DG_HiveActionExtension.html

第一个解决方案,使用属性标签使用如下

<property>
    <name>hiveTableName</name>
    <value>jobRequest</value>
</property>

像这样添加参数:

 <param>hiveTableName=${hiveTableName}</param>

通过 job.properties 的第二种解决方案:您想使用<param>标签传递参数,在 job.properties 中定义变量,然后使用<param>标签传递。

例如在 job.properties 添加,

hiveTableName=jobRequest

然后放入<param>hiveTableName=${hiveTableName}</param>oozie 工作流 hive 动作

于 2017-11-18T06:31:10.550 回答