oozie param标记在script标记之前?

jm81lzqq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

有没有可能使用 <param> 把oozie放在 <script> 标签。
如下所示:

<param>script_name=${wf:actionData('GetJobParameters')['SCRIPT_NAME']}</param>
                <script>/tmp/abc/hive/${script_name}</script>
                <param>K_NAME=${wf:actionData('GetJobParameters')['K_NAME']}</param>
                <param>P_NAME=${wf:actionData('GetJobParameters')['P_NAME']}</param>
                <param>CNAME=${wf:actionData('GetJobParameters')['C_NAME']}</param>

原因是我的脚本名应该作为参数传递,而不是硬编码。这个脚本名来自我的mysql数据库 ${wf:actionData('GetJobParameters')['SCRIPT_NAME']} .
感谢您的帮助。

bxgwgixi

bxgwgixi1#

不可以,因为oozie工作流/action xml希望一切都按照模式中定义的顺序进行。
还有,你对 <param> 标签似乎也错了。它不用于声明变量并在以后使用它。我猜你在写一篇文章 hive 行动, <param> 是用来通过考试的 <key=value> 配置单元作业的参数。这与 --hivevar 用于指定配置单元sql中的变量。 key 是您在配置单元sql脚本中使用的变量。
你可以像@samsonscharfrichter提到的那样:

<script>/tmp/abc/hive/${wf:actionData('GetJobParameters')['SCRIPT_NAME']}</scri‌​pt>

相关问题