OOzie定期杀死一份工作

时间:2016-06-24 07:32:30

标签: hadoop oozie hue oozie-coordinator

我有一个无限循环的java程序,我想在特定时间启动并且在两个小时后杀死,我可以启动程序,它继续运行,直到我手动杀死它,有没有办法Oozie(色调)可以定期开始和杀死工作吗?

2 个答案:

答案 0 :(得分:0)

如果你能找到一种用shell脚本(来自任意节点)杀死动作的方法,你应该可以使用oozie shell动作来杀死它。

话虽如此,前往这里的方式似乎是:

将结束时间传递给循环(或循环的包装器)

答案 1 :(得分:0)

Oozie协调员中有一个<timeout>选项...但名称令人困惑:实际上,该选项不适用于正在运行的作业。

我已经使用解决方法来达到类似的要求:只需告诉程序什么时候停止!

    协调器中的
  • ,为该执行生成带有所需结束时间的工作流参数,例如&#34;标称启动时间+55分钟&#34;即${coord:formatTime(coord:dateOffset(coord:nominalTime(), 55, 'MINUTE'), 'yyyy-MM-dd HH:mm:ss z')}
  • 在工作流中,将该参数作为参数传递给Java程序
  • 在Java程序中,找到一种方法来表示所需的结束时间参数 - 即当你在当前时间超过限制时运行无限循环然后break,否则使用残余System.exit()等无限循环分叉专用线程