Hadoop擅长分析和处理大型数据集,而MongoDB擅长存储应用程序的大型数据集,这两者结合到一起,就诞生了Mongo-Hadoop——MongoDB主要负责存储和查询,Hadoop主要负责批处理。
Mongo-Hadoop可以很容易地使用Mongo数据库库以及.bson格式的mongoDB备份文件,并将此作为HadoopMap/Reduce任务的数据输入源或者输出目标。Mongo-Hadoop先检测数据并计算数据分割,然后交给Hadoop并行处理,这样非常大的数据集就可以快速被处理。
Mongo-Hadoop支持Pig和Hive,这两个开源项目允许编写非常简单的脚本来执行非常复杂的MapReduce工作流。
Mongo-Hadoop还支持Hadoopstreaming,这样你可以使用Java以及其他任何编程语言来编写map/reduce函数。目前Mongo-Hadoop支持Ruby、Node.js和Python中的streaming。
Mongo-Hadoop的工作流程如下:
Mongo-Hadoop首先检查MongoDBCollection,并计算数据分割每个分割部分被分配到Hadoop集群中的一个节点同时,Hadoop节点从MongoDB(或BSON)获取数据,并进行本地处理Hadoop合并结果,并输出到MongoDB或BSON介绍内容来自iteye
评论