У меня есть следующий скрипт:Передача параметров от одного действия к другому в Oozie
DATE= date +"%d%b%y" -d "-1 days"
Как я могу передать DATE
к действию Java?
У меня есть следующий скрипт:Передача параметров от одного действия к другому в Oozie
DATE= date +"%d%b%y" -d "-1 days"
Как я могу передать DATE
к действию Java?
Вы можете сделать вывод из сценария оболочки и передать его java-action.In скрипт оболочки, эхо-свойство, как 'dateVariable = $ {DATE}', и добавить элемент capture-output int в действие оболочки. Это позволит вам фиксировать dateVariable из сценария оболочки. В действии java вы можете передать захваченную переменную в качестве параметра как $ {wf: actionData ('shellAction') ['dateVariable']}, где shellAction - это имя действия оболочки.
Пример рабочего процесса: -
<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.4"
name="Test workflow">
<start to="shellAction" />
<action name="shellAction">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>test_script.sh</exec> <file>${nameNode}/${workFlowLocation}/Scripts/test_script.sh#test_script.sh</file>
<capture-output />
</shell>
<ok to="JavaAction" />
<error to="fail" />
</action>
<action name="JavaAction">
<java>
<main-class>com.test.TestDriver</main-class>
<arg>${wf:actionData('shellAction')['dateVariable']}</arg>
<capture-output />
</java>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Job failed, error
message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end" />
</workflow-app>
В сценарии оболочки, эхо значение, как показано ниже
echo "dateVariable=${dateValue}"
, когда я делаю это, я получаю нулевое значение в качестве параметра. Можете ли вы сказать мне, почему это происходит? – kartik
Можете ли вы опубликовать образец рабочего процесса, который вы пробовали – InfamousCoconut
, разве вы не должны экспортировать переменную в оболочку, а не эхо? – Ben