【问题标题】:Processing data in couchdb with hadoop + mapreduce使用 hadoop + mapreduce 处理 couchdb 中的数据
【发布时间】:2012-07-19 18:04:39
【问题描述】:

我在 CouchDB 中有非常大量的数据,但我最近发现沙发中的 mapreduce 函数有多么严重(没有链接)。

所以我想到了使用 Hadoop 从 CouchDB 数据库运行 map reduce 查询,并希望将最终结果存储在另一个 CouchDB 数据库中?

这太疯狂了吗?我知道我可以设置 Hbase 来执行此操作,但我不想将我的数据从 CouchDB 迁移到 Hbase。我喜欢沙发作为数据存储。

【问题讨论】:

    标签: hadoop nosql couchdb mapreduce


    【解决方案1】:

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

    【讨论】:

    • 我以为那只是为了沙发垫……后者也有用吗?
    • 没有线索,从未使用过沙发底座。对于后者,它应该是有效的,您只需从 couchbase 导出数据并将其扔到 HDFS 上,然后您就可以从那里运行任何普通的 Hadoop MapReduce。
    【解决方案2】:

    CouchDB 中的 MapReduce 函数受限于简化结果的缓存。无需搜索受更改影响的视图,视图被设计为独立的。

    这意味着如果您有复杂的 MapReduce 代码,您可以使用 CouchApp 之类的工具在 MapReduce 函数中嵌入函数。我很难找到这方面的参考,但您可以使用宏 !code 在视图中嵌入 JavaScript 函数。 Using require() or // !json, !code in CouchDB?

    通过将大部分代码放在共享函数中,并仅在不同视图中调用函数,这有助于获得链而不链的一些生产力优势。出于链接的性能优势,如果这是您所追求的,那么您最好只迁移到 HBase。

    【讨论】:

    • 问题是我已经收集了很多数据,我现在才意识到couchdb map reduce实现系统是多么半生不熟。我正在考虑迁移到 couchbase,但他们也不允许从沙发上轻松迁移。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多