Oozie Hive Action 由于参数分配而不断失败?

Oozie Hive Action keeps failing due to parameter assignment?

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

每次提交作业时,我都会收到一条错误消息 "Job failed, error message[Parameter expression must contain an assignment: jobRequest]"。但是,我在最初提交配置时定义了这个参数并为其赋值。

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

<param>${hiveTableName}</param>

然后我创建一个 job.xml 并提交给 oozie,其中为该参数分配的值如下所示:

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

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

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

I get an error message that says "Job failed, error message[Parameter expression must contain an assignment: jobRequest]"

它抱怨 param 标记中缺少赋值运算符。查看文档以获取更多详细信息 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 工作流配置单元操作中