Hadoop Map/Reduce vs内置Map/Reduce

iCo*_*ode 22 hadoop mongodb

使用Hadoop map/reduce vs Mongo内置map/reduce对MongoDB进行map/reduce工作有哪些主要区别?

我什么时候选择哪个地图/减少引擎?每个引擎处理存储在mongodb中的数据的优缺点是什么?

Dav*_*man 31

我的答案是基于Hadoop MR的知识和经验以及Mongo DB MR的学习.让我们看看主要差异是什么,然后尝试定义选择标准:差异是:

  1. Hadoop的MR可以用Java编写,而MongoDB是用JavaScript编写的.
  2. Hadoop的MR能够利用所有内核,而MongoDB是单线程的.
  3. Hadoop MR不会与数据并置,而Mongo DB将被并置.
  4. Hadoop MR拥有数百万引擎/小时,可以应对大量输出,数据偏斜等的角落情况
  5. 在Hadoop MR引擎之上构建了更高级别的框架,如Pig,Hive,Cascading.
  6. Hadoop MR是主流,并且提供了许多社区支持.

从上面我可以建议选择以下标准:
如果你需要简单的分组和过滤,选择Mongo DB MR,不要指望map和reduce之间的重复混乱.换句话说 - 简单的事情.

如果您要进行复杂的,计算密集的MR工作(例如一些回归计算),请选择hadoop MR.在map和reduce之间有大量或不可预测的数据大小也表明Hadoop MR.

Java是一种更强大的语言,具有更多的库,尤其是统计.应该考虑到这一点.

  • 关于简单查询的性能 - hadoop效率不高,它有几层,MongoDB的轻量级MR实现,在系统内部工作可能有优势.我们可以联系并讨论什么是正确的测试方法. (5认同)

小智 10

截至MongoDB 2.4 MapReduce作业不再是单线程的.

另外,请参阅聚合框架,以获得在MongoDB中执行聚合和其他分析工作负载的更高性能,声明性方法.