Сравнение классификации платформ планирования больших данных (Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)
Сравнение классификации платформ планирования больших данных (Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)

Система планирования больших данных является движущей силой всех задач автономной пакетной обработки и вычислительных задач в квазиреальном времени. Здесь я классифицировал, обобщил и сравнил несколько распространенных систем планирования.

Oozie

Oozie — это система координации рабочих процессов, разработанная Cloudera для Apache. Она в основном используется для управления заданиями Hadoop.

Поддержка типов

Унифицированное планирование запуска общих задач mr, Java MR, Streaming MR, Pig, Hive, Sqoop, Spark, Shell и т. д. в системе Hadoop.

Визуальное определение процесса

Задачи планирования, связанные с конфигурацией, сложны, а зависимости, триггеры времени и триггеры событий выражаются с использованием языка XML.

Мониторинг задач

Статус задачи, тип задачи, машина, выполняющая задачу, время создания, время начала, время завершения и т. д.

Пауза/возобновление/дополнение

Поддержка запуска/остановки/паузы/возобновления/повторного запуска: Поддержка запуска/остановки/паузы/возобновления/повторного запуска.

другой

HA (высокая доступность) может поддерживаться через БД. При планировании задач могут возникать взаимоблокировки, которые зависят от текущей версии кластера. При обновлении до последней версии текущий кластер может оказаться несовместимым.

Azkaban

Azkaban — это планировщик задач пакетного рабочего процесса, запущенный Linkedin. Он в основном используется для запуска набора задач и процессов в определенном порядке в рамках рабочего процесса. Его настройка осуществляется с помощью простой пары ключ:значение. Зависимости в конфигурации используются для установки. зависимости Эта зависимость должна быть ациклической, иначе она будет считаться недопустимым рабочим процессом. Azkaban использует файлы конфигурации заданий для установления зависимостей между задачами и предоставляет простой в использовании веб-интерфейс пользователя для поддержки и отслеживания вашего рабочего процесса.

Поддержка типов

команды, HadoopShell, Java, HadoopJava, Pig, Hive и т. д. поддерживают подключаемые расширения.

В реальных проектах часто встречаются такие сценарии: каждый день есть большая задача. Эту большую задачу можно разделить на четыре маленькие задачи A, B, C и D. Между задачами A и B нет зависимости. Задача C зависит от. результаты задач A и B. Задача D зависит от результата задачи C. Общий подход заключается в том, чтобы открыть два терминала и одновременно выполнить A и B. После того, как оба будут выполнены, выполните C и, наконец, выполните D. В этом случае весь процесс выполнения требует ручного участия, а ход выполнения каждой задачи необходимо отслеживать. Но многие наши задачи выполняются посреди ночи, и мы настраиваем выполнение crontab, написав скрипты. По сути, весь процесс аналогичен ориентированному ациклическому графу (DAG). Каждая подзадача эквивалентна потоку в большой задаче. Начальная точка задачи может выполняться из узла без степени, а любой узел без пути может выполняться одновременно, например A и B выше. Подводя итог, нам нужен планировщик рабочих процессов, а Азкабан — планировщик, который может решить вышеуказанные проблемы.

Визуальное определение процесса

Предоставляйте файлы конфигурации заданий, чтобы быстро устанавливать задачи и зависимости между задачами, рисовать DAG с помощью специального DSL, а также упаковывать и загружать их.

Мониторинг задач

Виден только статус задачи.

Пауза/возобновление/дополнение

Рабочий процесс можно только завершить и запустить заново.

другой

Высокая доступность поддерживается через БД, и сервер будет зависать, если задач будет слишком много.

AirFlow

Airflow — это инструмент планирования с открытым исходным кодом, написанный на Python от Airbnb. Запущенный в 2014 году, весной 2015 года он стал открытым исходным кодом, а в 2016 году присоединился к инкубационной программе Apache Software Foundation. Airflow определяет весь рабочий процесс через DAG, который представляет собой направленный ациклический граф, поэтому имеет очень мощные возможности выражения.

Поддержка типов

Поддерживает Python, Bash, HTTP, Mysql и т. д., а также поддерживает пользовательские расширения оператора.

Визуальное определение процесса

Для определения процесса необходим код Python.

Мониторинг задач

Не интуитивно.

Пауза/возобновление/дополнение

Убейте задачу и перезапустите.

другой

Слишком много задач приведет к зависанию.

XXL-Job

XXL-JOB — это легкая платформа распределенного планирования задач с открытым исходным кодом, обладающая богатыми функциями управления задачами, высокой производительностью и высокой доступностью. Ее основные цели разработки — быстрая разработка, простота обучения, легкость, простота расширения и готовность к использованию сразу после запуска. коробка.

Поддержка типов

На основе Java.

Визуальное определение процесса

Нет, но можно настроить зависимости между задачами.

Мониторинг задач

никто

Пауза/возобновление/дополнение

Можно приостановить и возобновить.

другой

Поддержите ХА. Задача основана на механизме очереди и опроса.

DolphinScheduler

DolphinScheduler — это система планирования с открытым исходным кодом, разработанная China Analysys в этом (2019) году. 29 августа 2019 года по американскому времени система распределенного планирования задач Analysys DolphinScheduler (ранее EasyScheduler) была официально одобрена ведущей организацией с открытым исходным кодом Apache Foundation. Согласно списку рассылки Apache Foundation, резолюция голосования содержит 11 обязательных голосов (обязательных). голосов) и 2 необязательных голоса votes)Все голоса были за,никтовоздержался и возражения,Голосование прошло гладкопроходить,Таким образом, единогласно проголосовав за проведение, он официально стал проектом-инкубатором Apache.

Apache DolphinScheduler — это распределенная, децентрализованная и легко масштабируемая визуальная система планирования задач рабочих процессов DAG. Она предназначена для решения сложных зависимостей в процессе обработки данных, поэтому систему планирования можно использовать в процессе обработки данных «из коробки».

Поддержка типов

Поддерживает традиционные задачи оболочки и планирование задач платформы больших данных: MR, Spark, SQL (mysql, postgresql, hive/sparksql), python, процедура, sub_process.

Визуальное определение процесса

Все операции с потоками и временем являются визуальными. DAG можно нарисовать путем перетаскивания, а источники данных и ресурсы можно настроить. В то же время операции API предоставляются для сторонних систем.

Мониторинг задач

Статус задачи, тип задачи, количество повторов, компьютер, выполняющий задачу, визуальные переменные и журнал выполнения потока задач.

Пауза/возобновление/дополнение

Поддерживает операции паузы, возобновления и дополнения.

другой

Поддерживает HA, децентрализованную систему Multi-Master и Multi-Worker. Пользователи DolphinScheduler могут реализовать отношения сопоставления «многие к одному» или «один к одному» между арендаторами и пользователями Hadoop. Никто не может добиться детального авторитетного контроля.

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

Планировщик использует распределенное планирование. Общие возможности планирования будут линейными в зависимости от масштаба кластера, поддерживают динамический режим онлайн и офлайн и могут быть свободно настроены.

Пользователям может быть разрешен доступ к ресурсам, проектам и источникам данных. Поддержка, визуальное управление файлами и сопутствующими UDF-функциями и т.д.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose