【问题标题】:what is the Recommended max emits in map function?地图功能中推荐的最大发射量是多少?
【发布时间】:2012-08-07 00:01:41
【问题描述】:

我是 mongoDb 的新手,并计划使用 map reduce 来计算大量数据。 如您所知,我们有 map 函数来匹配标准,然后为给定的字段发出所需的数据。在我的地图功能中,我有多个发射。截至目前,我从一个文档中发出了 50 个字段。这意味着从集合中的单个文档会爆炸到临时表中的 40 个文档。因此,如果我有 100 万个文档要处理,则 map 函数结束时临时表中将有 100 万 * 40 个文档。

下一步是对该集合进行排序。 (我没有使用 map 的 sort 参数会有帮助吗?)

考虑将 map 函数一分为二……但是还有一个问题……在执行 map 函数时,如果我偶然遇到了一个例外,即跳过整个文档数据(即不从该文档发出任何数据)但是如果我分手了,我不能……

在 mongoDB.org 中,我发现一条评论说...“当我运行 MR 作业时,使用排序 - 在 MR 的第一阶段需要 1.5 天才能达到 23%。当我运行 MR 作业时,没有排序,它所有工作大约需要 24-36 小时。另外,当关闭 jsMode 时,我的 MR 会加速两次(在我关闭排序之前)"

启用排序会有帮助吗?或者关闭 jsmode 有帮助吗?我正在使用 mongo 2.0.5

有什么建议吗?

提前致谢。G

【问题讨论】:

    标签: mongodb mapreduce pymongo


    【解决方案1】:

    下一步是对该集合进行排序。 (我没有使用 map 的 sort 参数会有帮助吗?)

    不知道你的意思,MR没有排序参数,只有传入的查询有排序参数。传入查询的排序参数仅对传入的数据进行排序。除非您正在寻找一些特定行为,以避免使用通常不需要排序的传入排序对最终输出进行排序。

    您希望如何使用此 MR。显然它不会是实时的,否则你只会杀死你的服务器,所以我猜它是一个后台进程,可以按照你想要的方式运行和格式化数据。我建议研究增量 MR,以便您全天进行增量更新,以限制在任何给定时间使用的资源量。

    因此,如果我有 100 万个文档要处理,那么在 map 函数结束时,临时表中将有 100 万 * 40 个文档。

    您是否多次发射?如果不是,那么临时表每行应该只有一个键,文档格式为:

    { _id:发出的_id [{ //您发出的每个文档 }] }

    显示的是:http://kylebanker.com/blog/2009/12/mongodb-map-reduce-basics/

    或者关闭 jsmode 会有帮助吗?我正在使用 mongo 2.0.5

    关闭 jsmode 不太可能做任何重要的事情,而且结果各不相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2021-05-29
      • 2023-04-01
      • 2015-03-08
      • 2014-07-02
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多