我在oozie中使用MR动作。并希望使用oozie在MR上提供的暂停/恢复功能。
问题 - 但是,当我们在Oozie上调用'suspend'而不会杀死hadoop作业时,它只更新oozie状态,而hadoop作业继续运行完成。我希望在oozie工作流程暂停时立即杀死hadoop作业。猜猜那不可能吗?
所以,我想我可以杀死oozie工作流程并重新运行它。 但现在的问题是,如果我的工作流程中有3个动作节点,我不想重新运行所有这些节点。
我在这里吸烟还是可以访问最后一个成功的oozie节点(最有可能存储在mysql数据库中)?
对于我纵容的用例,是否有更好的方法?
提前感谢您的帮助,
P.S。我没有发布我的工作流程,因为它是一个简单的工作流程,有几个map-reduce动作,这里没有火箭科学。
答案 0 :(得分:2)
oozie命令行界面允许标记" -rerun"在以下背景中使用:
oozie job -oozie http://localhost:11000/oozie -config job.properties -rerun 14-20090525161321-oozie-joe
重新运行的自动化存在一个问题,即您必须提供一个操作节点列表,以使用oozie.wf.rerun.skip.nodes变量跳过job.properties文件。 以下内容取自source
以下两种配置中只有一种是强制性的。两者都不应该同时定义 oozie.wf.rerun.skip.nodes
oozie.wf.rerun.failnodes
跳过节点是逗号分隔的动作名称列表。它们可以是任何动作节点,包括决策节点 oozie.wf.rerun.failnodes的有效值为true或false。 如果使用安全的hadoop版本,则还需要指定以下两个属性 mapreduce.jobtracker.kerberos.principal dfs.namenode.kerberos.principal。
为了获得自动化,可能值得花些时间尝试使用shell脚本完成操作后附加到属性文件或直接将其实现到MR作业中。