我在 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 天。
那我在这里错过了什么?
答案 0 :(得分:0)
问题在于长时间运行高频率的协调员工作。由于coord作业仍在运行,因此永远不会清除所有子工作流。
解决方案是(引用外部链接),
作为一种解决方法,您可以做的就是分散您的长期运行 协调员。例如,而不是让你的协调员运行 年份?永远?,让它运行,比方说,6个月。并有一个 相同的协调员计划在该结束时准确开始。 这将允许Oozie从中清理旧的子工作流 协调员每6个月一次。否则,您可以安排一个cron作业 从数据库中手动删除旧作业。但是,请 小心这个。从WF_JOBS删除工作流作业时 表,您还需要从中删除工作流操作 属于它的WF_ACTIONS表,以及协调器操作 来自它所属的WF_ACTIONS表。如果你错过了什么, 它可能会导致问题。
<强>参考强>:
JIRA链接: