【问题标题】:oozie - How to set timeout on workflow run?oozie - 如何在工作流运行时设置超时?
【发布时间】:2016-10-05 00:24:47
【问题描述】:

我正在尝试在 oozie 中设置工作流运行超时,但在工作流运行开始一段时间后它会失败。

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

【问题讨论】:

标签: workflow oozie


【解决方案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 脚本应该正常终止,让工作流继续进行

这是一个非常丑陋的问题解决方法,但我目前想不出更清洁的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多