Oozie没有清理Oozie数据库中的旧作业

时间:2015-08-11 15:41:32

标签: hadoop oozie cloudera-cdh

我在 oozie-site.xml 中设置了以下属性(在Cloudera Manager中使用安全阀

oozie.services.ext - org.apache.oozie.service.PurgeService
oozie.service.PurgeService.older.than - 15
oozie.service.PurgeService.coord.older.than - 7
oozie.service.PurgeService.bundle.older.than - 7
oozie.service.PurgeService.purge.interval - 60

但是,我仍然看到一些旧的工作,这些工作已经被杀死或者完成了2014年9月的旧工作

举个例子,

我有一个协调员,目前处于RUNNING状态。当我使用Oozie Web控制台列出该协调员的实例时,即单击协调器选项卡并单击我的协调员,然后在弹出窗口中,我看到所有物化工作流作业中最早的工作(协调员操作) )2014年9月。

我认为负责清理它的财产是 oozie.service.PurgeService.older.than ,我已将其设置为 15 天。

那我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

问题在于长时间运行高频率的协调员工作。由于coord作业仍在运行,因此永远不会清除所有子工作流。

解决方案是(引用外部链接),

  

作为一种解决方法,您可以做的就是分散您的长期运行   协调员。例如,而不是让你的协调员运行   年份?永远?,让它运行,比方说,6个月。并有一个   相同的协调员计划在该结束时准确开始。   这将允许Oozie从中清理旧的子工作流   协调员每6个月一次。否则,您可以安排一个cron作业   从数据库中手动删除旧作业。但是,请   小心这个。从WF_JOBS删除工作流作业时   表,您还需要从中删除工作流操作   属于它的WF_ACTIONS表,以及协调器操作   来自它所属的WF_ACTIONS表。如果你错过了什么,   它可能会导致问题。

<强>参考

JIRA链接

https://issues.apache.org/jira/browse/OOZIE-1532