题目把问题说得很清楚。为什么在jobtracker中有两个不同的部分用于已完成和已退休的工作?谢谢。
pbwdgjma1#
JobRetirement是jobtracker将作业持久化到磁盘并清除内存的正常过程。您可以在cloudera博客上阅读更多详细信息:一旦一个作业完成,它就会保存在内存中(最多 mapred.jobtracker.completeuserjobs.maximum )在磁盘上,如上所述。有一个配置值可控制已完成作业的总体退役策略:密钥: mapred.jobtracker.retirejob.interval 默认值:2460601000(1天)换句话说,默认情况下,已完成的作业将在一天后失效。默认情况下,每分钟检查一次要退出的作业,可以通过以下方式进行控制:密钥: mapred.jobtracker.retirejob.check 默认值:601000(以毫秒为单位为60秒)当jobtracker运行时,该检查将持续运行。如果某个作业已停用,则只需从jobtracker的内存列表中删除它(它还将删除该作业的所有任务等)。作业在其完成时间的至少1分钟内(在jobtracker.java中硬编码)不会失效。retire调用还会删除作业的jobtracker本地(见上文)文件。剩下的就是history目录中每个失效作业的两个文件( hadoop.job.history.location )另外,如果启用,则每个作业文件( hadoop.job.history.user.location ).
mapred.jobtracker.completeuserjobs.maximum
mapred.jobtracker.retirejob.interval
mapred.jobtracker.retirejob.check
hadoop.job.history.location
hadoop.job.history.user.location
1条答案
按热度按时间pbwdgjma1#
JobRetirement是jobtracker将作业持久化到磁盘并清除内存的正常过程。您可以在cloudera博客上阅读更多详细信息:
一旦一个作业完成,它就会保存在内存中(最多
mapred.jobtracker.completeuserjobs.maximum
)在磁盘上,如上所述。有一个配置值可控制已完成作业的总体退役策略:密钥:
mapred.jobtracker.retirejob.interval
默认值:2460601000(1天)换句话说,默认情况下,已完成的作业将在一天后失效。默认情况下,每分钟检查一次要退出的作业,可以通过以下方式进行控制:
密钥:
mapred.jobtracker.retirejob.check
默认值:601000(以毫秒为单位为60秒)当jobtracker运行时,该检查将持续运行。如果某个作业已停用,则只需从jobtracker的内存列表中删除它(它还将删除该作业的所有任务等)。作业在其完成时间的至少1分钟内(在jobtracker.java中硬编码)不会失效。retire调用还会删除作业的jobtracker本地(见上文)文件。剩下的就是history目录中每个失效作业的两个文件(
hadoop.job.history.location
)另外,如果启用,则每个作业文件(hadoop.job.history.user.location
).