使用Hadoop map / reduce与Mongo的内置map / reduce进行MongoDB上的map / reduce工作有哪些主要区别?
我何时选择哪个地图/减少引擎?每个引擎处理存储在mongodb中的数据的优缺点是什么?
答案 0 :(得分:31)
我的回答是基于Hadoop MR的知识和经验以及Mongo DB MR的学习。 让我们看看主要的差异,然后尝试定义选择标准: 差异是:
从上面我可以建议以下选择标准:
如果你需要简单的分组和过滤,请选择Mongo DB MR,不要期望map和reduce之间的重复混乱。换句话说 - 简单的事情。
如果您要进行复杂的,计算密集的MR工作(例如一些回归计算),请选择hadoop MR。在map和reduce之间有大量或不可预测的数据大小也表明Hadoop MR。
Java是一种更强大的语言,具有更多的库,尤其是统计。应该考虑到这一点。
答案 1 :(得分:10)
从MongoDB开始,2.4 MapReduce作业不再是单线程的。
另外,请参阅Aggregation Framework,了解在MongoDB中执行聚合和其他分析工作负载的更高性能,声明性方法。
答案 2 :(得分:1)
当谈到Hadoop时,第3项肯定是不正确的。处理与数据的共置是Hadoop基础的一部分。
答案 3 :(得分:0)
我对Hadoop MR没有太多经验,但我的印象是它只适用于HDFS,因此您必须在HDFS中复制所有Mongo数据。如果您愿意复制所有数据,我猜Hadoop MR比Mongo MR更快,更强大。