在没有安装mongo的计算机上执行Mongo mapreduce作业

时间:2012-02-07 01:05:13

标签: mongodb mongodb-java

我有一组mapreduce作业,我需要从我的Java程序中执行。现在我正在通过Java Process调用

执行它们
$MONGO_HOME/bin/mongo host:port/database jsFiles

有没有办法可以在没有Mongo的机器上执行这些mapreduce taks。 mongo Java驱动程序是否支持此类功能?

谢谢!

2 个答案:

答案 0 :(得分:2)

MongoDB MapReduce作业始终在Mongo服务器上运行,从不在客户端运行,任何客户端都可以将作业发送到服务器。

@Chris Shain向您指出了文档(http://api.mongodb.org/java/current/com/mongodb/MapReduceCommand.html),我建议您阅读它们,但也了解大多数MapReduce操作都会将减少存储在数据库中的大量数据减少到较小的结果集。越接近数据实际存储的位置越好,大多数人不直接在服务器上执行命令。为了使MapReduce操作有用,Mongo必须(并且确实!)提供了一种从客户端使用它的方法。有关一般策略,请参阅此处:http://www.mongodb.org/display/DOCS/MapReduce

请注意,由于操作在服务器上运行,您可能会注意到锁定百分比增加。如果这是一个问题,请考虑在从属或辅助Mongo实例上运行MapReduce作业。

答案 1 :(得分:1)

Mongo的Java客户端驱动程序具有MapReduceCommand,在此处记录:http://api.mongodb.org/java/current/com/mongodb/MapReduceCommand.html