LocalExecutor это хорошо, но его становится недостаточно, когда количество задач растёт и одной машины становится мало. Для масштабирования Airflow рекомендуется использовать следующие типы исполнителей:
CeleryExecutor базируется на популярном в экосистеме Python менеджере задач Celery. Чтобы масштабировать Airflow с помощью Celery необходимо дополнительно установить зависимости:
pip install 'apache-airflow[celery]==2.0.1' --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.0.1/constraints-3.8.txt
Также для работы Celery необходим брокер сообщений. Среди популярных решений используется Redis или RabbitMQ. Если вы не работали с Celery, то рекомендую прочитать мою статью про нюансы работы с ним: Celery: начинаем правильно.
Я предпочитаю использовать в качестве брокера сервер Redis из-за простоты его настройки и дальнейшей работы с ним. Чтобы установить Redis выполните команду:
sudo apt-get install redis-server
Использовать CeleryExecutor рекомендуется в том случае, если одной машины с Apache Airflow становится недостаточно из-за количества задач или ограничений по её производительности. Если вы хотите масштабировать Airflow на 2 и более машины, то имейте в виду, что у всех этих машин должен быть доступ к центральному брокеру.
Спасибо за замечание, Иван! Эти символы вставляются при копировании из редактора 🥺
Ivan Andreichuk 24 Октябрь 2022
<> лишние