oozie调度中的重试和手工rerun一个workflow
在oozie中有Bundle、Coordinator和Workflow三种类型的job,他们之间可以有以下包含关系。
Bundle > Coordinator > Workflow。
1. 重新运行一个Coordinator job,可以通过如下命令:
oozie job -rerun 0000034-180116183039102-oozie-hado-C -refresh -action 1-4
0000034-180116183039102-oozie-hado-C 表示coordinator的job id
-action 表示包含的action对应的序号的1-4,即重新运行历史的4次job。
2. 如果只想重新运行一个workflow job,可以通过如下命令:
oozie job -rerun 0000411-180116183039102-oozie-hado-W -config rerun_workflow.xml
或者通过-D 参数直接设置 (上面rerun_workflow.xml中内容也是oozie.wf.rerun.failnodes=false的xml形式而已)
oozie job -rerun 0000411-180116183039102-oozie-hado-W -D oozie.wf.rerun.failnodes=false
否则会报错如下:
Error: E0401 : E0401: Missing configuration property [oozie.wf.rerun.skip.nodes OR oozie.wf.rerun.failnodes]
oozie.wf.rerun.failnodes 参数含义:true指在失败的节点重新运行,false指不在失败的节点运行
oozie.wf.rerun.skip.nodes 指定跳过哪些节点运行
注意: 使用rerun重新运行workflow的job时,在coordinator中配置的参数会失效,因此通常是rerun一个coordinator程序。
另外在worfkflow程序中,也可以按照如下配置来自动重试:
retry-max: 表示重试次数,如果该配置大于系统的配置最大重试次数,则取系统配置的最大次数
retry-interval: 重试时间间隔,3分钟。
总体可以解释为:每3分钟重试一次,一共重试5次。
<!-- 统计day: dm_guba_loginlog --> <action name="hive-node" retry-max="5" retry-interval="3"> <hive xmlns="uri:oozie:hive-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <job-xml>${hive_site_path}</job-xml> <configuration> <property> <name>mapred.job.queue.name</name> <value>${queueName}</value> </property> </configuration> <script>script.q</script> <param>tmp_table=tmp_dm_guba_loginlog_day</param> <param>params_dt=${params_dt}</param> </hive> <ok to="java-node"/> <error to="senderror"/> </action>
本文来自博客园,作者:硅谷工具人,转载请注明原文链接:https://www.cnblogs.com/30go/p/8391328.html