2012-07-19 51 views
2

好吧,这听起来很愚蠢,我对这个东西很陌生。但这是我的困境。我在couchdb中有非常大量的数据,但是我最近发现沙发中的mapreduce函数有多残缺(无链接)。使用hadoop + mapreduce处理couchdb中的数据

所以我有这种想法,使用hadoop从couchdb数据库运行map reduce查询,并希望将最终结果存储在另一个couchdb数据库中?

这太疯狂了吗?我知道我可以设置hbase来做到这一点,但我不想将我的数据从couchdb迁移到hbase。我喜欢沙发作为数据存储。

在此先感谢!

回答

0

显然CouchDB应该能够流数据到Hadoop via Sqoop,但我没有看到任何其他信息,但该链接。最糟糕的情况是,您可以编写自己的输入阅读器以从CouchDB读取数据,或定期导出数据并将其放到HDFS上并从此处运行。

+0

我认为这只是为了couchbase ...还有后者会有效吗? – 2012-07-19 19:02:17

+0

没有线索,从未使用过couchbase。对于后者,它应该是有效的,你只是从couchbase中导出数据并将其扔到HDFS上,然后从那里运行任何正常的Hadoop MapReduce。 – Drizzt321 2012-07-20 16:44:13

0

CouchDB中的MapReduce函数受限于简化结果的缓存。视图被设计为独立的,而不是搜索受到变化影响的视图。

这意味着如果你有复杂的MapReduce代码,你可以使用像CouchApp这样的工具在MapReduce函数中嵌入函数。我无法找到此参考资料,但您需要使用宏!code将JavaScript函数嵌入到视图中。 Using require() or // !json, !code in CouchDB?

这可以帮助您获得链接无需链接的部分生产力优势,将大部分代码放在共享函数中,并仅在不同视图中调用该函数。为了提高链接的性能,如果这就是你所追求的目标,那么转向HBase可能会更好。

+0

问题是我已经收集了大量的数据,我现在才意识到如何制作出couchdb map减少执行系统。我正在考虑迁移到couchbase,但他们不允许从沙发上轻松迁移过程。 – 2012-07-19 19:01:32

相关问题