我有一系列需要运行的mapreduce作业。我想知道使用oozie来代替“一个大驱动程序”来运行那个序列是否有什么好处?我知道oozie可以用来运行不同类型的多个操作,例如pig脚本、shell脚本、mr job,但是我很感兴趣的是,我应该分割我的两个作业并使用oozie运行它们,还是使用一个jar来运行它们?
ycggw6v21#
oozie是一个调度器-粗糙的,缺乏文档记录,但是一个调度器。如果您本身不需要调度,或者边缘节点上的cron就足够了如果您想自己处理您的工作流逻辑(例如,条件分支、并行执行w/等待掉队者、调用通用子工作流w/特殊参数、错误电子邮件警报、),或者不需要任何花哨的逻辑如果你自己处理执行日志和状态历史,或者不关心历史... 好吧,不要用调度程序。另外,还有luigi(spotify)和azkaban(linkedin)作为hadoop的替代调度器。[编辑]另外要考虑的一点是:如果你的“司机”因为任何原因撞车,你可能没有机会发出警报;但如果从oozie运行,则最终会检测到崩溃(可能需要30分钟,在极端情况下,例如由于rm故障转移导致am作业自毁)
1条答案
按热度按时间ycggw6v21#
oozie是一个调度器-粗糙的,缺乏文档记录,但是一个调度器。
如果您本身不需要调度,或者边缘节点上的cron就足够了
如果您想自己处理您的工作流逻辑(例如,条件分支、并行执行w/等待掉队者、调用通用子工作流w/特殊参数、错误电子邮件警报、),或者不需要任何花哨的逻辑
如果你自己处理执行日志和状态历史,或者不关心历史
... 好吧,不要用调度程序。
另外,还有luigi(spotify)和azkaban(linkedin)作为hadoop的替代调度器。
[编辑]另外要考虑的一点是:如果你的“司机”因为任何原因撞车,你可能没有机会发出警报;但如果从oozie运行,则最终会检测到崩溃(可能需要30分钟,在极端情况下,例如由于rm故障转移导致am作业自毁)