Ответ 1
-
Они одинаковы в том, что оба могут решить проблему, которую вы описываете (map-reduce). Они отличаются тем, что Hadoop полностью построен для решения только того, что usecase и Celey/RabbitMQ построена для облегчения выполнения Задачи на разных узлах с использованием передачи сообщений. Сельдерей также поддерживает различные применения.
-
Hadoop решает проблему уменьшения карты, имея большую и специальную файловую систему, из которой картограф берет свои данные, отправляет ее в кучу узлов карты и сводит ее к этой файловой системе. Это имеет то преимущество, что это действительно быстро. Недостатком является то, что он работает только с текстовым вводом данных, Python на самом деле не поддерживается и что если вы не можете делать (слегка) разные операции. Сельдерей - это исполнитель заданий на основе сообщений. В нем вы определяете задачи и группируете их вместе в рабочем процессе (который может быть map-reduce рабочим процессом). Его преимущества заключаются в том, что он основан на python, что вы можете сшить задачи вместе в пользовательском рабочем процессе. Недостатком является то, что он полагается на единый брокер брокер/результат и время его установки.
-
Итак, если у вас есть несколько лог файлов на уровне Gb и вы не хотите писать на Java и иметь запасные серверы, которые используются исключительно для запуска Hadoop, используйте это. Если вам нужна гибкость при работе с рабочими задачами, используйте Celery. Или.....
-
Да! Существует новый проект от одной из компаний, которые помогли создать протокол обмена сообщениями AMQP, который используется RabbitMQ (и другими). Он называется ZeroMQ, и он принимает распределенные сообщения/выполнение на следующий уровень, странно снижая уровень абстракции по сравнению с Celery. Он определяет сокеты, которые вы можете связать друг с другом различными способами для создания каналов обмена сообщениями между узлами. Все, что вы хотите делать с этими сообщениями, зависит от вас, чтобы писать. Хотя это может звучать так: "что хорошего - тонкая обертка вокруг сокета", на самом деле он находится на правильном уровне абстракции. Прямо сейчас в нашей компании мы разыгрываем все наши сообщения о сельдере и перестраиваем их с помощью ZeroMQ. Мы обнаружили, что сельдерей слишком упрям, о том, как должны выполняться задачи и что настройка/конфигурация в целом - это боль. Также, что брокер в середине, который должен обрабатывать весь трафик, стал для большинства узких мест.
Резюме:
- Подсчитайте вхождения "the" в книге с минимальным программированием и большим количеством времени установки/настройки: Hadoop
- Создайте атомарные задачи и будьте уверены, что они будут работать вместе с не большим программированием и большим количеством времени установки/настройки: Celery
- Полностью контролируйте, что делать с вашими сообщениями и как их программировать практически без настройки/времени настройки: ZeroMQ
- Имейте боль без настройки/времени конфигурации: Розетки