我正在尝试使用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">
答案 0 :(得分:0)
我收到一条错误消息,指出“作业失败,错误消息[参数表达式必须包含赋值: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工作流配置操作