hadoop分布式缓存

问题描述:

我们如何更新hadoop分布式缓存中的文件。 选项:hadoop分布式缓存

  1. 更新分布式缓存中的文件并重新启动mapreduce作业。
  2. 用新文件替换文件,并将指针位置更改为指向新位置并重新启动地图缩减作业。
  3. 在分布式缓存中附加新值并重新启动地图缩小作业。
  4. 其他选项.....

我用Google搜索,但无法找到我的问题,以便张贴在这里的答案。 希望我能得到答案。

+0

你是什么意思更新?你需要什么?在作业正在运行时更改文件?要更改文件然后运行作业?当没有作业正在运行时,没有缓存......它在HDFS中,并在作业开始时将其添加到缓存中。 – vefthym

当mapreduce作业正在运行时,您无法更新DistributedCache,否则它将成为关键竞争对手。

您必须重新启动作业,并提交另一个DistributedCache数据 - 作业之间不存在DistributedCache持久性。

+0

这意味着一旦文件是分布式缓存的一部分,我们无法更新它? – user3315815

+0

对于实例 - 我有一个属性文件放置在分布式缓存中,现在我想用分布式缓存中的更新属性文件替换属性文件。我怎样才能做到这一点 ?只需用已更新的属性文件替换旧的属性文件,或者将新的属性文件放置在新的位置并将该位置指向分布式缓存。还是有其他选择? – user3315815

+0

您使用-files选项或addCacheFile传递的文件被复制到分布式缓存。你可以随时覆盖原文。当您重新运行作业时,这些更改将适用。 –