oozie中如何rerun一个workflow
Posted 胖子学习天地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
以上是关于oozie中如何rerun一个workflow的主要内容,如果未能解决你的问题,请参考以下文章
我需要在oozie 中的workflow.xml 和job.properties 中提供配置吗?
Oozie-自定义实现WorkFlow中shell action
OOZIE HIVE 操作 - workflow.xml 属性不会传递给子任务