oozie工作流终止时回滚操作

dluptydi  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(378)

我一直试图在oozie中的一个动作失败时触发一个动作
我可以使用下面的error-to节点来实现这一点

<ok to="end"/>
<error to="kill"/>

如果我的要求是在oozie中当前操作失败时执行回滚,那么这将非常有效。
我要找的是在工作流被终止的情况下触发一个步骤(如果有人转到工作流并单击hue中的kill按钮)
我可以看到一个名为kill的节点,它是在workflow.xml中使用oozie时生成的。我试图将我的自定义操作放在这个空间中,但每次保存xml时,工作流都会得到如下默认值

<kill name="kill">
    <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

当一个oozie工作流被终止时,是否有任何方法可以执行某些操作(某种回滚)?
有没有办法捕获kill操作并触发另一个工作流?我浏览了oozie文档,但没有成功。
非常感谢你在这方面的帮助。

4urapxun

4urapxun1#

kill节点中的name属性是kill操作节点的名称。消息元素的内容将被记录为工作流作业的终止原因。kill节点没有转换元素,因为它结束了工作流作业(如kill)。
那么,您是否尝试调用回滚操作,同时在“error to”it self中提到相同的操作,而不是调用kill。像这样的事情

<ok to="end"/>
<error to="rollBack_action"/>

后来提到“回滚动作”之类的

<action name='rollBack_action'>
                <java>
                        <job-tracker>${jobTracker}</job-tracker>
                        <name-node>${nameNode}</name-node>
                        <arg>action_roll_back</arg>
                </java>
                <ok to="end"/>
        </action>

相关问题