在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>