Hadoop与MongoDB概念

时间:2013-02-14 07:46:05

标签: java mongodb hadoop mongodb-hadoop

您好我是Hadoop和NoSQL技术的新手。我开始通过读取存储在HDFS中的文件并对其进行处理来学习世界计数程序。现在我想将Hadoop与MongoDB一起使用。从here开始编程。

现在我很困惑,它将mongodb数据存储在我的本地文件系统中,并将数据从本地文件系统读取到map / reduce中的HDFS,然后再将其写入mongodb本地文件系统。当我研究HBase时,我们可以将其配置为将其数据存储在HDFS上,而hadoop可以直接在HDFS上进行处理(map / reduce)。如何配置mongodb将其数据存储在HDFS上。

我认为在HDFS中存储数据以便快速处理是更好的方法。不在本地文件系统中。我对吗?如果我的方向错误,请清楚我的概念。

2 个答案:

答案 0 :(得分:3)

HDFS是一个分布式文件系统,而HBase是一个使用HDFS的NoSQL数据库,因为它的文件系统提供了与Hadoop的快速有效集成,已被证明可以大规模运行。能够直接在Hadoop中使用HBase数据或将其推入HDFS是将HBase选为NoSQL数据库解决方案的一大优势 - 我不认为MongoDB提供了与Hadoop和HDFS的紧密集成,这将降低任何性能和将数据从/向数据库移动的效率问题。

请查看此博客文章,详细分析MongoDB与Hadoop的集成情况 - 其中一个结论是,MongoDB对HDFS的写入效果不佳:http://www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/

答案 1 :(得分:3)

MongoDB不能在HDFS之上工作,因为Mongo已经有了自己的水平扩展和处理存储在多台机器上的数据的方法,所以它并不是必需的。

如果您需要使用MongoDB和Hadoop,更好的方法是使用MongoDB作为数据源,但处理Hadoop中的所有内容(将HDFS用于任何临时存储)。完成数据处理后,您可以将其写回MongoDB,S3或任何您想要的地方。

我写了一篇博文,详细介绍了如何在这里使用Mongo和Hadoop:http://blog.mortardata.com/post/43080668046/mongodb-hadoop-why-how