0

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

$MONGO_HOME/bin/mongo host:port/database jsFiles

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

谢谢!

4

2 回答 2

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 作业。

于 2012-02-07T01:31:53.497 回答
1

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

于 2012-02-07T01:26:21.937 回答