我的Map / Reduce程序经常从S3请求文件。在reducer中,我经常从Amazon S3请求文件,并且我可能多次请求相同的文件(每个文件大约1万至10 MB,大约1万个文件)。使用Hadoop分布式缓存效率不高,因为它将所有这些文件复制到所有工作节点(据我了解),但是我不想这样做,因为在 reducer 阶段,我可能只从10 K个文件中请求1000个文件。而且,如果reducer在文件之前请求过,如果reduce再次需要它,我不想再次请求它。我问是否有人在工作节点上实现了ehcache或oscache这样的缓存框架?还是有什么方法仅将请求的文件缓存在工作机磁盘上?
谢谢
亚希亚
最佳答案
看看SHARK
无需花费太多时间进行配置。另一个选择是memcached。
关于caching - 在Hadoop工作节点上缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808988/