Hadoop完成和退休工作之间的差异

abh*_*rni 2 jobs hadoop

标题使问题非常清楚.为什么在jobtracker中有完成和退休工作的两个不同部分?

谢谢.

Cha*_*guy 5

作业退役是从jobtracker到将作业持久存储到磁盘并清理内存的正常过程.您可以在Cloudera博客上阅读更多详细信息:

一旦作业完成,它将按照上述内容保存在内存中(最多mapred.jobtracker.completeuserjobs.maximum)和磁盘上.有一个配置值可以控制已完成作业的整体退休策略:

:mapred.jobtracker.retirejob.interval
默认值:24*60*60*1000(1天)
换句话说,默认情况下,已完成的作业在一天后退役.对于要退休的作业的检查是默认每分钟完成的,可以通过以下方式控制:

密钥:mapred.jobtracker.retirejob.check
默认值:60*1000(60秒,以毫秒为单位)
在JobTracker运行时,检查会持续运行.如果作业已停用,则只需从JobTracker的内存列表中删除它(它还会删除作业的所有任务等).乔布斯在完成时间至少1分钟(在JobTracker.java中硬编码)不退休.退休调用还会删除作业的JobTracker Local(参见上文)文件.剩下的就是历史目录(hadoop.job.history.location)中每个退役作业的两个文件加上 - 如果启用 - 每个作业文件(hadoop.job.history.user.location).