Предложение для инструмента (ов) планирования для построения конвейеров данных на основе hadoop
Между Apache Oozie, Spotify / Luigi и airbnb / airflow, каковы плюсы и минусы для каждого из них?
В прошлом я использовал oozie и airflow для построения конвейера приема данных с использованием PIG и Hive. В настоящее время я нахожусь в процессе создания конвейера, который просматривает журналы, извлекает полезные события и помещает их в красное смещение.
Я обнаружил, что воздушный поток гораздо проще использовать / тестировать / настраивать. Он имеет гораздо более прохладный пользовательский интерфейс и позволяет пользователям выполнять действия из самого пользовательского интерфейса, что не относится к Oozie. Любая информация о Луиджи или другие идеи относительно стабильности и проблем приветствуются.
2 ответа
- Azkaban: Отличный интерфейс, относительно простой, доступный для непрограммистов. Имеет долгую историю в LinkedIn.
- Ознакомьтесь с проектом Azkaban CLI для программного создания рабочих мест. У меня есть пример рабочего процесса Azkaban на GitHub.
- Воздушный поток: достойный пользовательский интерфейс, определение задания на Python, полу-доступный для непрограммистов, синтаксис объявления зависимостей странный.
- Луиджи: Хорошо, пользовательский интерфейс, рабочие процессы - чистый Python, требует глубокого понимания кодирования Python и объектно-ориентированных концепций, поэтому не подходит для непрограммистов.
- Oozie: Безумные определения заданий на основе XML. Здесь будут драконы.;-)
ИМХО, Azkaban обеспечивает простоту (не может использовать функции, которые не существуют), а другие тонко поощряют сложность.
Простые конвейеры лучше, чем сложные конвейеры: их легче создавать, легче понимать (особенно если вы их не создавали) и легче отлаживать / исправлять.
Когда требуются сложные действия, вы хотите инкапсулировать их так, чтобы они либо полностью преуспели, либо полностью провалились.
Если вы можете сделать его идемпотентным (повторный запуск приводит к идентичным результатам), тогда это даже лучше.
Этот пост даст вам начальное представление о различных возможных рабочих процессах