我有一个理论案例。我有一个文件,我加载到DistributedCache。然后我运行我的mapreduce程序。
完成作业后,我想更新我的文件。 当我使用相同的参数运行我的程序时,DistributedCache会自动下载该文件的新版本吗?
答案 0 :(得分:0)
是的,当重新提交作业时,分布式缓存文件也应该更新。 使用分布式缓存文件(例如,使用-file选项)提交作业后,任务跟踪器会将文件复制到其本地磁盘。此文件现在可供映射器使用。 因此,重新提交作业时,任务跟踪器应将文件再次复制到本地磁盘。因此,当它这样做时,它会将更新的文件提供给Task Tracker的本地文件系统。
另请注意,任务跟踪器会为缓存中的每个文件维护引用计数。作业完成后,计数变为零,该文件将有资格删除(超过local.cache.size后)。