У меня есть один рабочий процесс, как указано в коде. И у меня есть два вопроса к одному и тому же.
Первый
Мне нужно получить значение, рассчитанное по сценарию оболочки из действия - «shellscript», и это вычисленное значение, которое мне нужно передать в другое действие рабочего процесса - counter_decision. то есть значение переменной - variable_from_shellscript в действии counter_decision, должно быть получено из действия оболочки.
Второй
Я вызываю action1 неоднократно на основе counter_decision. Мне нужно каждый раз, когда я звоню, это должно быть как action1, action2, action3 .... и так далее. Как я могу это сделать.
<action name="shellscript">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>${myscript}</exec>
<file>${myscriptPath}${myscript}#${myscript}</file>
<capture-output />
</shell>
<ok to="counter_decision" />
<error to="KillEmail" />
</action>
<decision name="counter_decision">
<switch>
<case to="action1">
${counter le variable_from_shellscript}
</case>
<case to="dummy">
${counter gt variable_from_shellscript}
</case>
<default to="end"/>
</switch>
</decision>
<action name="action1" cred="hcat,hive2">
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<master>yarn-cluster</master>
<mode>cluster</mode>
<name>${appName}</name>
<property>
<name>counter</name>
<value>${counter + 1}</value>
</property>
<class>${main_class}</class>
<jar>${projectCore}</jar>
<arg>${projectConfigFile}</arg>
<arg>0</arg>
<arg>main</arg>
</spark>
<ok to="action2" />
<error to="KillEmail" />
</action>