【问题标题】:What is the recommended way to do mongo map-reduce from within an server http request?从服务器 http 请求中执行 mongo map-reduce 的推荐方法是什么?
【发布时间】:2012-06-10 12:03:24
【问题描述】:

我使用的是 REPLACE 输出类型,这意味着 MR 结果存储在一个集合中。

两个 http 请求在不同的线程中同时进行 MR - 这意味着我不能使用相同的输出集合名称,因此每个请求都会有一个集合,这可能会导致创建许多 MR 结果集合。

您如何处理这种情况?你如何限制并发请求的数量?如果查询重复,您是否保留 MR 结果集合?

简而言之,我很想知道其他人如何管理这些 MR 集合(如果有的话)。

我正在使用 mongo java 驱动程序 (2.7.3) 和 Restlet (2.0.10)

谢谢。

【问题讨论】:

  • 您不应该在加载的系统中使用 MR。如果它没有加载,那么不会有太多的集合。用完后把它们放下。
  • 好的,但是如果 MR 提供了所需的逻辑,我该如何避免呢?
  • 选择另一个数据库,也许?
  • 你的意思是另一个关系数据库吗?
  • 不一定是相关的。您还可以将 Hadoop-over-MongoDB 用于您的 MR 作业。

标签: java mongodb mapreduce


【解决方案1】:

如果要多次使用结果,那么为每个 map-reduce 查询创建一个唯一的集合并在需要答案时从该集合中检索答案是有意义的。

在服务器中设置一个指示 MR 正在运行的标志可能会使您免于同时执行 MR 收集。如果 MR 作业是一项消耗资源的作业,最好将 MR 的结果保存在某个地方并在需要时检索它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2016-05-26
    • 2021-04-12
    相关资源
    最近更新 更多