Сельдерей для Map-Reduce или другие альтернативы в Python? - PullRequest
3 голосов
/ 29 июля 2011

У меня есть дорогие задания, которые очень подходят для работы по модели «карта и уменьшение» (короче говоря, это агрегирование нескольких сотен ранжирований, которые ранее рассчитывались с помощью некоторого трудоемкого алгоритма).1002 * Я хотел распараллелить задания на кластерах (а не просто на многопроцессорной обработке) и сосредоточился на двух реализациях: Сельдерей и Диско .Celery не поддерживает наивные карты-и-сокращения из коробки, и хотя часть «карты» легко сделать с помощью TaskSets, как эффективно реализовать часть «уменьшения»?

(Моя проблема с дисков том, что он не работает в Windows, и я уже настроил сельдерей для другой части программы, поэтому запуск другого фреймворка для map-Reduction кажется довольно неэффективным.)

Ответы [ 2 ]

1 голос
/ 29 июля 2011

В основном вам нужно взять выходные данные одной задачи и применить выходные данные в качестве входных данных для другой задачи.сельдерей не пригодится в этом.

В режиме сельдерея у вас может быть планировщик периодических задач, который выполняет задания (часть карты) асинхронно и сохраняет ссылку на задачу самостоятельно, если это отдельный компьютер, или публикует ссылку на серверную часть БД (redis /монго / и т.д.).Вам могут понадобиться планировщики, чтобы собрать этот результат и применить его к функциям уменьшения.

Я бы сказал, что вы запускаете свои собственные процессы python для map и Reduction на всех кластерах и убедитесь, что вы сохраняете результат в памяти db, например, redis, и используете celery для выполнения задач на карте и Reduce.Ваш основной процесс будет собирать и объединять результаты.

0 голосов
/ 27 августа 2013

Пожалуйста, посмотрите на следующий блог.

http://mikecvet.wordpress.com/2010/07/02/parallel-mapreduce-in-python/

...