如果协调员操作失败,如何暂停Oozie协调员?

时间:2016-07-21 12:24:05

标签: hadoop oozie oozie-coordinator

在我的用例中,协调器操作的输出在下一次迭代中使用,因此如果其中一个失败,则未完成/损坏的数据将被输入到下一个协调器操作中。

如果协调员操作中的某个工作流程步骤失败,有没有办法暂停Oozie协调员?

例如,而不是:

<action name="Delete_TMP_Files">
  <fs>
    <delete path='${outputPath}*'/>
  </fs>
  <ok to="End"/>
  <error to="Kill"/>
</action>

我们可以这样做:

<action name="Delete_TMP_Files">
  <fs>
    <delete path='${outputPath}*'/>
  </fs>
  <ok to="End"/>
  <error to="Suspend"/>
</action>

因此可以在下一个协调器操作覆盖其输出之前诊断错误吗?

PS:fs&gt;删除不是这里的实际用例,只是一个例子。

1 个答案:

答案 0 :(得分:1)

您无法根据工作流程的失败(来自协调员操作)暂停协调员。

如果工作流程的输出具有某种模式,那么您可以使用它并在工作流程开始时进行检查。

否则,您可以始终touch将文件作为工作流中的最后一个操作,只要成功,并且在失败的情况下,删除(如果是相同的文件,而不是基于日期)。使用与工作流程中第一次检查相同的文件,然后进行相应操作。最初,您可能需要手动创建文件。

您可以在发生故障时使用电子邮件操作并获得通知。

这只是一种解决方法。