2016-07-26 3 views
0

Можно использовать тег <param> в oozie перед тегом <script>.Oozie param tag перед тегом скрипта?

Как показано ниже:

   <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']}.

Любая помощь приветствуется.

+2

Хм ... какой-либо причине вы не можете писать прямо ' '?? –

+0

Кроме того, выражение '$ {script_name}' относится к параметру Oozie * * (как в разделе '' рабочего процесса или в файле конфигурации в момент отправки), а не локальному '', который должен быть передан как есть для действия свиней. –

+0

Подробнее о том, что такое «параметр» в диалекте Оози, в этом сообщении: http://stackoverflow.com/questions/38337362/oozie-properties-defined-in-file-referenced-in-global-job-xml- не видно-in-wo –

ответ

0

Нет. Вы не можете этого сделать, потому что рабочий процесс Oozie/action xml ожидает все в порядке, как определено в схеме.

Кроме того, ваше понимание тега <param> также представляется неправильным. Это не для объявления переменной и ее использования позже. Я предполагаю, что вы написали действие hive, <param> используются для передачи параметра <key=value> в задание улья. Это похоже на --hivevar для указания переменных в hive SQL. key - это переменная, которую вы использовали в сценарии sql hive.

Вы можете сделать, как указано в @SamsonScharfrichter:

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