【发布时间】:2014-02-07 17:37:12
【问题描述】:
我在 oozie 上有一个协调器,它运行一系列任务,每个任务都取决于最后一个的输出。 每个任务输出一个过时的文件夹并使用
查找其前任的输出${coord:latest(0)}
当没有其他东西运行时,这一切都在我的开发集群上运行良好;每 5 分钟 oozie 会排队另一个作业,并且在那 5 分钟内之前的作业已经运行,所以当新作业设置时它会看到它需要的目录。
我在生产集群上遇到了问题;作业被提交,但被放入队列中并且不会运行一段时间,但仍然每 5 分钟 oozie 会排队另一个作业,并且在其初始化阶段,它被分配了其“上一个”文件夹,该文件夹尚未尚未创建,因为其前身尚未运行,因此“最新”功能为其提供与前一个作业相同的输入。然后我最终得到了 10 个工作都采用相同的输入......
我需要的是一种严格防止协调器序列中的下一个作业在其前身完成运行之前创建的方法。 有没有办法做到这一点?
感谢阅读
【问题讨论】:
-
您为合作指定的频率是多少?
-
看看这些例子,github.com/yahoo/oozie/wiki/Oozie-Coord-Use-Cases 我不确定这是否是最好的主意,但您可以使用
Coordinator Job With Timeouts示例设置超时并消除堆积的相同作业跨度> -
抱歉,我在这里遗漏了一些关键信息 - 频率设置为每天,但我们有积压的旧数据要导入,因此它比名义运行更频繁地安排作业时间已经过去了。