我正在使用Apache oozie。我想在我的oozie工作流程中将其中一个shell操作的状态标记为OK。它处于运行状态。
我们可以分享在Apache Oozie中使用的命令吗?
答案 0 :(得分:0)
您不需要显式设置操作的状态。 Oozie会根据操作/任务执行情况自动为您执行此操作。例如,假设您有一个看起来像这样的shell动作:
<workflow-app
xmlns="uri:oozie:workflow:0.3" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
<shell
xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>some-script.sh</exec>
<file>/user/src/some-script.sh</file>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
如果/user/src/some-script.sh
执行成功,Oozie将动作状态标记为ok
并成功结束作业。另一方面,如果脚本执行遇到任何错误,则会将其标记为error
,立即杀死该作业并进行定向。如果您希望不因脚本中代码的任何异常执行而终止工作,则可以创建另一个动作并指示Oozie遵循该执行路径,而不是立即终止工作流程。进一步了解Oozie Shell Action。