我想在oozie中将2个参数传递给我的Hiveql脚本, 我的剧本:
ALTER TABLE default.otarie_appsession
ADD IF NOT EXISTS PARTITION ( insert_date=${dt},hr=${hr} );
我的Oozie工作流程:
当我发送作业时,它要求参数值,所以我把:
这就是错误:
2016-02-05 18:41:55,460 WARN org.apache.oozie.action.hadoop.HiveActionExecutor: SERVER[DVS1VM65] USER[root] GROUP[-] TOKEN[] APP[My_Workflow] JOB[0000290-160122145737153-oozie-oozi-W] ACTION[0000290-160122145737153-oozie-oozi-W@hive-a586] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [40000]
这是工作流程的XML:
<workflow-app name="My_Workflow" xmlns="uri:oozie:workflow:0.5">
<start to="hive-a586"/>
<kill name="Kill">
<message>L'action a échoué, message d'erreur[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="hive-a586">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>/user/oozie/some_scripts/hive-site.xml</job-xml>
<script>/user/oozie/some_scripts/addpart.hql</script>
<param>hr=</param>
<param>dt=</param>
</hive>
<ok to="End"/>
<error to="Kill"/>
</action>
<end name="End"/>
</workflow-app>
当我删除所有参数并使用硬编码值时,脚本工作正常,所以很明显我有问题传递参数。我的最终目标是通过当前的日期和时间。
谢谢。
答案 0 :(得分:1)
如何使用 Oozie 参数设置 Hive 参数...
<param>hr=${bilouteHR}</param>
<param>dt=${bilouteDT}</param>
...然后在提交时设置这些 Oozie 参数的值?
bilouteHR
00
bilouteDT
20160105
希望能解决你的问题,biloute。