Выполнение заданий Mongo mapreduce на компьютере без установленного mongo - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть набор заданий mapreduce, которые мне нужно выполнить из моей Java-программы.Прямо сейчас я выполняю их через Java-процесс, вызывая

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

Есть ли способ выполнить эти команды mapreduce на машине, где нет Mongo.Поддерживает ли драйвер Java mongo такую ​​функциональность?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Задания MongoDB MapReduce всегда выполняются на сервере Mongo, никогда на клиенте, и любой клиент может отправить задание на сервер.

@ Крис Шейн указал вам на документы (http://api.mongodb.org/java/current/com/mongodb/MapReduceCommand.html),, и я рекомендую вам прочитать их, но также и понимать, что большинство операций MapReduce будут все о сокращении огромных объемов данных, сохраняемых в вашей базе данных вниз к меньшим наборам результатов. Чем ближе это делается к месту фактического хранения данных, тем лучше, и большинство людей не выполняют команды непосредственно на сервере. Чтобы операция MapReduce была полезной, Mongo должен был бы (и сделал !) предоставьте способ использовать его с клиента. Общие стратегии см. здесь: http://www.mongodb.org/display/DOCS/MapReduce

Обратите внимание, что, поскольку операция выполняется на сервере, вы можете заметить увеличение процента блокировки. Если это проблема для вас, попробуйте запустить задание MapReduce на подчиненном или вторичном экземпляре Mongo.

1 голос
/ 07 февраля 2012

Драйвер клиента Java для Mongo имеет команду MapReduceCommand, задокументированную здесь: http://api.mongodb.org/java/current/com/mongodb/MapReduceCommand.html

...