如何将Oozie工作流程操作的状态标记为OK

问题描述

我正在使用Apache oozie。我想在我的oozie工作流程中将其中一个shell操作的状态标记为OK。它处于运行状态。

我们可以分享在Apache Oozie中使用的命令吗?

解决方法

您不需要显式设置操作的状态。 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...