Mongodb 是否可以在mongo中获取map reduce进度通知?
地图还原在Mongo很慢。这是既定的。因此,我想知道是否有可能收到map REDUCT进度通知Mongodb 是否可以在mongo中获取map reduce进度通知?,mongodb,mapreduce,Mongodb,Mapreduce,地图还原在Mongo很慢。这是既定的。因此,我想知道是否有可能收到map REDUCT进度通知 谢谢。我不知道有什么内置功能。但是,您可以在单独的脚本中每隔一段时间运行一次db.currentOp(),阅读map reduce progress并通知相关方 这是我能看到的一个例子: > db.currentOp() { "inprog" : [ { "opid" : 249198781, "active" : true
谢谢。我不知道有什么内置功能。但是,您可以在单独的脚本中每隔一段时间运行一次
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函数的进展……必须调查一下。请注意,它确实知道有多少行进去了,但仍然不知道应该有多少行出来……嗯