Выполнение заданий Mongo mapreduce на машине без установленного mongo

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

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

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

Спасибо!


person Skynet    schedule 07.02.2012    source источник


Ответы (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< /а>

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

person mattbornski    schedule 07.02.2012

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

person Chris Shain    schedule 07.02.2012