我的 Map/Reduce 程序经常从 S3 请求文件。在 reducer 中,我非常频繁地从 Amazon S3 请求文件,并且我可能会多次请求同一个文件(大约 10 K 个文件,每个文件在 1 MB 到 12 MB 之间)。使用 Hadoop 分布式缓存效率不高,因为它将所有这些文件复制到所有工作节点(据我所知),但我不想像在减速器阶段那样做这些,我可能只从 10 K 个文件中请求 1000 个文件。此外,如果减速器在文件之前请求,如果减速器再次需要它,我不想再次请求它。我在问是否有人在工作节点上实现了像 ehcache 或 oscache 这样的缓存框架?或者有什么方法可以只缓存工作机器磁盘上的请求文件?
谢谢雅希亚