请您简要说明一下oozie作业如何根据LIFO,FIFO和LASTONLY设置来优先处理作业。 主要需要通过时序示例来说明LIFO和LASTONLY之间的区别。
答案 0 :(得分:0)
This部分描述了区别。
相关部分:
FIFO (最早的),默认。
LIFO (最新)。
LAST_ONLY :虽然FIFO和LIFO仅指定READY的顺序 应该执行的动作,LAST_ONLY实际上会导致某些动作 被跳过,并且有点难以理解。当LAST_ONLY是 设置时,当“等待”或“就绪”操作将被跳过时, 当前时间已超过下一个动作的标称时间。例如, 假设动作1和2都准备就绪,当前时间是5:00 pm,并且 动作2的标称时间是下午5:10。从现在开始的10分钟内,下午5:10, 假设操作1不会过渡到 在此之前提交(或处于终端状态)。这听起来类似于 超时控制,但有一些重要的区别:
- 超时时间是可配置的,而LAST_ONLY时间实际上是频率。
- 达到超时会使操作转换为TIMEDOUT,这将导致协调器作业变为RUNNINGWITHERROR并 最终发生DONEWITHERROR。使用LAST_ONLY,动作将变为“跳过” 并且协调器作业仍在运行,并最终完成。
- 超时看起来满足数据依赖性,而LAST_ONLY则观察动作本身。这意味着超时 只会导致从WAITING过渡,而LAST_ONLY可能会导致 从等待或就绪过渡。
LAST_ONLY在您需要重复性工作但不实际需要时很有用 关心个别实例,只是一直想要最新的实例 行动。例如,如果您有一个协调员,每10个运行一次 分钟,然后将Oozie放下1小时,然后Oozie回来,在那里 通常是6个等待或准备运行的动作。但是,随着 LAST_ONLY,只有当前的一个将被提交,然后运行。 其他人将转到“跳过”。
无:类似于LAST_ONLY,只是不看下一个 动作的标称时间 oozie-site.xml中的oozie.coord.execution.none.tolerance(默认为1 分钟)。设置为NONE时,将处于等待或准备就绪状态 当当前时间超过配置的次数时,跳过 该动作的标称时间之后的分钟(公差)。例如, 假设操作1和2都准备就绪,当前时间是5:20 pm,并且 这两个动作的标称时间都在下午5:19之前。两种动作都会 假设他们没有过渡到“已提交”(或 终端状态)。