oozie周期性地杀死一个作业

xoefb8l8  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(350)

我有一个无限循环的java程序,我想在一个特定的时间启动,两个小时后也会终止,我可以启动这个程序,它会一直运行,直到我手动终止它,在oozie(hue)有没有一种方法可以定期启动和终止作业?

mbzjlibv

mbzjlibv1#

如果你能找到一种方法用一个shell脚本(从任意节点)杀死这个动作,你应该可以使用oozie shell动作来杀死它。
话虽如此,这里的出路似乎是:
将endtime传递给循环(或循环的 Package 器)

4sup72z8

4sup72z82#

有一个 <timeout> oozie协调器中的选项。。。但这个名称令人困惑:实际上,这个选项并不适用于正在运行的作业。
我为一个类似的需求使用了一个变通方法:告诉程序什么时候应该停止!
在协调器中,生成一个工作流参数,其中包含执行所需的结束时间,例如“标称开始时间+55分钟”,即。 ${coord:formatTime(coord:dateOffset(coord:nominalTime(), 55, 'MINUTE'), 'yyyy-MM-dd HH:mm:ss z')} 在工作流中,将该参数作为参数传递给java程序
在java程序中,找到一种实现所需的结束时间参数的方法——即,如果运行无限循环,那么 break 当当前时间超过限制时,否则用一个指定的线程派生一个无限循环 System.exit() 等等。

相关问题