oozie - 如何在工作流程上设置超时?

时间:2016-06-05 08:04:03

标签: workflow oozie

我试图在oozie中设置工作流运行超时,这在工作流程开始一段时间后失败。

例如,可以在 coordinator.xml 中使用sla:should-end进行操作/工作流,或者在 workflow.xml 中指定sla:should-end流程。
但问题是SLA只发送电子邮件。我想要的是在一段时间后(从开始运行)失败  可能吗?任何示例代码都会有所帮助。

1 个答案:

答案 0 :(得分:1)

我不知道Oozie或Yarn的任何直接解决方案。有Yarn ticket可以提供方便的解决方案。

在实施之前,你可以尝试这样的事情:

  • 在工作流程的开头添加FS touchz action以创建文件(例如/ tmp / WF_ID)
  • 在创建文件后向工作流添加分支
  • 其中一个路径应该是一个shell操作,用于检查文件是否存在,并使用hdfs dfs -ls / tmp / WF_ID,直到达到超时(有关提示,请参阅this post
  • 另一条路径是原始工作流逻辑和FS删除操作,最后删除/ tmp中的文件
  • 如果在从HDFS删除文件之前超时,则shell操作应该终止工作流。如果在达到超时之前删除了文件,则shell脚本应正常终止,让工作流继续

这是一个非常丑陋的问题解决方法,但我现在无法想到更清洁的解决方案。