您能否简要解释一下oozie作业如何根据LIFO、FIFO和LASTONLY设置来确定作业的优先级。主要需要LIFO和LASTONLY之间的区别和时序示例。
发布于 2019-07-11 19:21:23
Oozie文档中的This部分描述了这种差异。
相关部分:
先进先出(最早的先)*默认。
后进先出(最新的优先)。
LAST_ONLY :虽然先进先出和后进先出只是指定准备好的动作应该被执行的顺序,但LAST_ONLY实际上可能会导致一些动作被跳过,并且更难理解。如果设置了LAST_ONLY,则当当前时间超过下一个操作的标称时间时,将跳过正在等待或准备就绪的操作。例如,假设动作1和2都已就绪,当前时间为5:00 is,动作2的标称时间为5:10 is。10分钟后,下午5:10,假设动作1在此之前没有转换到提交状态(或终端状态),它将被跳过。这听起来类似于超时控件,但有一些重要的区别:
当超时时间实际上是frequency.
如果您想要一个循环作业,但实际上并不关心单个实例,而只是想要最新的操作,那么LAST_ONLY是很有用的。例如,如果你有一个协调器每10分钟运行一次,让Oozie停下来1个小时,当Oozie回来时,通常会有6个动作等待或准备运行。然而,对于LAST_ONLY,只有当前的将转到提交,然后运行;其他的将转到跳过。
NONE:与LAST_ONLY类似,不同之处在于它不查看下一个操作的名义时间,而是查看oozie-site.xml中的oozie.coord.execution.none.tolerance (缺省为1分钟)。设置为NONE时,如果当前时间超过配置的操作标称时间的分钟数(容差),则将跳过正在等待或准备就绪的操作。例如,假设动作1和2都准备好了,当前时间是5:20 is,两个动作的名义时间都在5:19 is之前这两个操作都将被跳过,假设它们在此之前没有转换到提交(或终端状态)。
https://stackoverflow.com/questions/56670639
复制相似问题