Hadoop:在迭代映射作业之间维护内存缓存

Posted

技术标签:

【中文标题】Hadoop:在迭代映射作业之间维护内存缓存【英文标题】:Hadoop: maintain memory cache between iterated map jobs 【发布时间】:2013-09-18 21:16:27 【问题描述】:

我想在集群中迭代地调用 map-reduce 作业。在每次迭代中,映射器应处理大约 10000 条大容量记录。在每次迭代中,主节点使用不同的参数调用这些映射器,但输入记录保持不变。每次调用映射器时都不需要加载这些记录;在迭代中将它们缓存在主内存中会很棒,并且只需处理给定的新参数值。

我计划使用运行 Hadoop 的 AWS Elastic MapReduce,而我的实现使用 Python,因此 Java API 似乎没有帮助。是否可以在该架构中实现这样的缓存?如果不是,AWS 或其他公有云中的合适架构是什么?

【问题讨论】:

【参考方案1】:

Hadoop 1 中的 Map/Reduce 不适合这种情况。你应该看看 Hadoop 2.0 和 YARN,它们可以实现更灵活的模型。

你也可以看看Apache Hama哪个can run on AWS通过steaming支持python

【讨论】:

流媒体*。哈马为我工作,谢谢。 Hama Streaming 仍然不成熟。

以上是关于Hadoop:在迭代映射作业之间维护内存缓存的主要内容,如果未能解决你的问题,请参考以下文章

使用番石榴缓存(内存表)维护多个索引

多次迭代内存不足

Spark详细总结

Hadoop中分布式缓存的困惑

创建在执行之间持续存在的内存缓存

centos下简单的优化内存的方法