2016-10-05 11 views
1

В Моем рабочем процессе, у меня есть одно действие оболочки и HDFS фс действияВ oozie процессе (HUE), как передать параметр из действия оболочки на HDFS фс действия

  1. Shell дата действие отголоски. (date = 2016-10-06)

  2. Я хочу установить вышеуказанный параметр даты в пути mcdir fs action. Ниже приведено определение действия.

< имя действия = "фс-a347">

<fs> 
    <mkdir path='${nameNode}/user/kylin/${wf:actionData("shell-e424")["date"]}'/> 
    </fs> 
    <ok to="End"/> 
    <error to="Kill"/> 
</action> 

Я получаю следующее сообщение об ошибке.

EL_ERROR: «&», ожидаемый один из [,,, «true», «false», «null», «(», «)», «-», «not», «!», empty ",]

ответ

0

Вам нужно учесть две строки, чтобы сформировать полный путь.

String concat(String s1, String s2) 

Он возвращает конкатенацию из 2 строк. Строка с нулевым значением считается пустой строкой.

<mkdir path='concat(${nameNode}/user/kylin/, ${wf:actionData("shell-e424")["date"]})'/> 
+0

Не работает. Получена такая же ошибка. –

+0

Можете ли вы предоставить подробное исключение из oozie.log и workflow.xml – YoungHobbit

+0

EL_ERROR Обнаружено «&», ожидаемое одно из [,,, «true», «false», «null», «(«, »)», "-", "не пусто", ] –

0

Для того, чтобы захватить выход из вашего скрипта или любого узла действия Oozie, вам нужно использовать <capture-output/> тег в конце вашего определения узла.

Из документации Oozie:

Если захват-выходной элемент присутствует, он указывает Oozie захватить вывод> в STDOUT выполнения команды оболочки. Вывод команды Shell должен быть> в формате файлов свойств Java и не должен превышать 2 КБ. Внутри определения> workflow выход узла действия оболочки доступен через функцию> String action: output (String node, String key) (см. Раздел «4.2.6> Функции действия EL»).

Синтаксис и полные спецификации можно найти в документации на Oozie для действий Shell здесь: http://oozie.apache.org/docs/4.0.0/DG_ShellActionExtension.html