Mongodb 是否可以在mongo中获取map reduce进度通知?

Mongodb 是否可以在mongo中获取map reduce进度通知?,mongodb,mapreduce,Mongodb,Mapreduce,地图还原在Mongo很慢。这是既定的。因此,我想知道是否有可能收到map REDUCT进度通知 谢谢。我不知道有什么内置功能。但是,您可以在单独的脚本中每隔一段时间运行一次db.currentOp(),阅读map reduce progress并通知相关方 这是我能看到的一个例子: > db.currentOp() { "inprog" : [ { "opid" : 249198781, "active" : true

地图还原在Mongo很慢。这是既定的。因此,我想知道是否有可能收到map REDUCT进度通知


谢谢。

我不知道有什么内置功能。但是,您可以在单独的脚本中每隔一段时间运行一次
db.currentOp()
,阅读map reduce progress并通知相关方

这是我能看到的一个例子:

> db.currentOp()
{
    "inprog" : [
        {
            "opid" : 249198781,
            "active" : true,
            "lockType" : "read",
            "waitingForLock" : false,
            "secs_running" : 14,
            "op" : "query",
            "ns" : "mydb.mycoll",
            "query" : {
                "mapreduce" : "mycoll",
                "map" : function cf__9__f_() {
    emit(this.aid, 1);
},
                "reduce" : function cf__10__f_(k, vals) {
    var result = 0;
    vals.forEach(function (v) {result += v;});
    return result;
},
                "out" : {
                    "inline" : 1
                }
            },
            "client" : "127.0.0.1:44254",
            "desc" : "conn",
            "threadId" : "0x7e98f24e4700",
            "connectionId" : 1958947,
            "msg" : "m/r: (1/3) emit phase 644165/7670157 8%",
            "progress" : {
                "done" : 644165,
                "total" : 7670157
            },
            "numYields" : 644
        }
    ]
}

解决方案是不使用map reduce。MongoDB中的MR设计糟糕,实现被设计破坏。如果你真的需要一个可靠的MR实现:将MongoDB与Hadoop一起使用-否则不要使用它。谢谢你的建议。我正在使用Windows7进行开发。这是否意味着我必须拥有Cygwin+OpenSSH才能运行Hadoop?Hadoop是Mongo MR engine唯一可行的替代方案吗?Hadoop对您的应用程序来说是一个额外的复杂性层,它需要自己的服务器、Mongo的连接器(从阅读用户组来看,这有时是非常不可靠的)事实上,No实际上是一个全新的分布式MR引擎,它可能是一个简单的MR,它只是运行在大量数据上。事实上,与“MaulWurfn”相矛盾,我认为正确的答案是,以不需要MRS或尝试新的方式来构造数据和应用程序。聚合框架或为外部MRs使用预构建的服务,如MongoHQ和MongoLabs。没有必要为MR运行您自己的hadoop群集…这太过分了,因为没有办法检查100的进度,只是它仍在运行。哇,我想知道它是如何做到的?我的意思是10gen自己说没有办法做到这一点,因为没有办法真正理解js函数的进展……必须调查一下。请注意,它确实知道有多少行进去了,但仍然不知道应该有多少行出来……嗯