Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Hadoop Map/Reduce与内置Map/Reduce的比较_Mongodb_Hadoop - Fatal编程技术网

Mongodb Hadoop Map/Reduce与内置Map/Reduce的比较

Mongodb Hadoop Map/Reduce与内置Map/Reduce的比较,mongodb,hadoop,Mongodb,Hadoop,使用Hadoop map/reduce和Mongo的内置map/reduce在MongoDB上进行map/reduce工作的关键区别是什么 何时选择哪个地图/缩小引擎?每个引擎处理存储在mongodb中的数据的优缺点是什么?我对Hadoop MR没有太多经验,但我的印象是它只在HDFS上工作,因此您必须在HDFS中复制所有Mongo数据。如果您愿意复制所有数据,我想Hadoop MR比Mongo MR更快、更健壮。我的答案基于Hadoop MR的知识和经验以及Mongo DB MR的学习。 让我

使用Hadoop map/reduce和Mongo的内置map/reduce在MongoDB上进行map/reduce工作的关键区别是什么


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

我对Hadoop MR没有太多经验,但我的印象是它只在HDFS上工作,因此您必须在HDFS中复制所有Mongo数据。如果您愿意复制所有数据,我想Hadoop MR比Mongo MR更快、更健壮。

我的答案基于Hadoop MR的知识和经验以及Mongo DB MR的学习。 让我们看看主要区别,然后尝试定义选择标准: 区别在于:

  • Hadoop的MR可以用Java编写,而MongoDB是用JavaScript编写的
  • Hadoop的MR能够利用所有内核,而MongoDB是单线程的。
  • Hadoop MR不会与数据并置,而Mongo DB将与数据并置。
  • Hadoop MR拥有数百万个引擎/小时,可以处理大量输出、数据倾斜等情况
  • 在Hadoop MR引擎的基础上构建了更高层次的框架,如Pig、Hive、级联等。
  • Hadoop MR是主流,有很多社区支持。
  • 从上面我可以提出以下选择标准:
    如果您需要简单的分组和筛选,请选择Mongo DB MR,不要期望map和reduce之间出现严重的混乱。换言之——简单的事情

    如果您要做复杂的、计算密集的MR工作(例如一些回归计算),请选择hadoop MR。map和reduce之间存在大量或不可预测的数据,这也意味着Hadoop先生


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

    从MongoDB 2.4开始,MapReduce作业不再是单线程的


    另外,请参阅,以了解在MongoDB中执行聚合和其他分析工作负载的更高性能、声明性方式。

    对于Hadoop,第3项肯定是不正确的。处理与数据的共用是Hadoop的基础。

    事实上并非如此。该项目帮助您直接在monogo数据上运行hadoop。无需迁移到hdfsHadoop,MR可以使用任何可以从java访问的数据源。不仅仅是HDFS。非常好的观点,谢谢。您认为将数据保存在Mongo中而不使用HDFS会有任何大的瓶颈吗?我的数据大小约为10 TB,结构高度结构化,我的计算既简单又复杂。将数据保存在Mongo中会给我们带来很多好处,但我不确定不使用HDFS是否会有问题?还有一个问题,可以肯定地说hadoop即使在简单的M/R作业上也会更快吗?我对Mongo DB的了解有限。据我所知,这个系统是为随机访问而构建的,是围绕索引构建的。这是一个为在线服务而构建的系统。同时,HDFS是为顺序访问而构建的,重扫描和所有折衷都是在这个方向上完成的。因此,我不期望MongoDB在扫描方面表现出色。。。有这么大的数据,这是一个棘手的问题,我认为需要更多的信息来决定。具体来说,影响Mongo DB性能是至关重要的。关于简单查询的性能,hadoop效率不高,它有几个层,MongoDB的轻量级MR实现,在系统内部工作可能具有优势。我们可以连接并讨论进行测试的正确方法。很好的一点,让我们实际这样做并连接,因为这可能是一个有价值的测试。