在我们公司中,我们有一个包含大量非结构化数据的MongoDB数据库,我们需要在该数据库上运行map-reduce算法来生成报告和其他分析。我们提供两种方法来执行所需的分析:
一种方法是将数据从MongoDB提取到Hadoop集群,然后完全在Hadoop平台中进行分析。但是,这需要在准备平台(软件和硬件)以及教育团队使用Hadoop并为其编写映射减少任务方面进行大量投资。
另一种方法是将我们的精力放在设计map-reduce算法上,然后在MongoDB map-reduce功能上运行这些算法。这样,我们可以创建可以生成报告的最终系统的初始原型。我知道MongoDB的map-reduce功能与Hadoop相比要慢得多,但是目前数据还不算大,这使得它成为瓶颈,至少在接下来的六个月内不会。
问题是,使用第二种方法并为MongoDB编写算法,是否可以将它们稍后以很少的修改和算法重新设计移植到Hadoop?MongoDB仅支持JavaScript,但是易于处理编程语言上的差异。但是,MongoDB和Hadoop的map-reduce模型之间是否存在根本差异,可能迫使我们重新设计算法以实质性地移植到Hadoop?