0

我有一个要使用分布式缓存工具添加的文件列表。不同的reduce任务需要不同的文件。例如,reduce 1 需要文件 A,而 reduce 2 需要文件 B,依此类推。在 Job Conf 中,这两个文件都是使用 DistributedCache.addCacheFile() 方法添加的。在 reduce 类配置方法中,我使用 DistributedCache.getCacheFiles() 来获取文件。有没有可能我只能在reduce 1的内存中拥有文件A,而在reduce 2的内存中只有文件B。或者在reduce任务开始之前,这两个文件都被添加到内存中。

如果我理解这一点,我可以为我的程序使用分布式缓存。我关心的是可扩展性。文件很大。因此,reduce 任务不能将这两个文件都放在内存中。但可以容纳其中一个文件。

请帮忙!!!

谢谢

4

1 回答 1

0

返回缓存文件的方法,按照添加的顺序返回缓存文件的所有名称的数组。因此可以告诉reducer 1 获取array[0] 文件并告诉reducer 2 获取array[1] 文件。此缓存也建议不要在其中包含非常大的文件。

于 2012-10-23T16:50:21.300 回答