失敗重試
問題描述
項目中配置了 retry-max=“3” retry-interval=“2” 但是任務error並不重試。
workflow的xml配置如下
<workflow-app name="etl_ds_hive2_action-${etl_name}" xmlns="uri:oozie:workflow:0.5">
<start to="hive2_action"/>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="hive2_action" cred="hive2" retry-max="3" retry-interval="2" >
<hive2 xmlns="uri:oozie:hive2-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>oozie.launcher.mapred.job.queue.name</name>
<value>${launcher_queue}</value>
</property>
<property>
<name>mapreduce.job.queuename</name>
<value>${mapreduce_queue}</value>
</property>
</configuration>
<jdbc-url>${hiveServerUrl}?mapred.job.queue.name=${mapreduce_queue}</jdbc-url>
<password>${p}</password>
<script>/user/jwth/etl_ds/etl/86/11718.hql</script>
<param>biz_date=${biz_date}</param>
<param>var_date=${var_date}</param>
<param>var_date=${var_date}</param>
</hive2>
<ok to="End"/>
<error to="Kill"/>
</action>
<end name="End"/>
</workflow-app>
問題排查
查詢官方文檔後發現,默認嘗試的 error code 只有幾個
問題解決方案
配置 oozie.service.LiteWorkflowStoreService.user.retry.error.code.ext=ALL
如果你使用 CM 管理CDH 可在界面如下操作配置
總結
之前沒有認真閱讀官方文檔,以爲配置了retry-max=和 retry-interval action 就會自動重試,閱讀後才發現