失败重试
问题描述
项目中配置了 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 就会自动重试,阅读后才发现