Как выполнить простые задачи Celery на работниках Airflow - PullRequest
0 голосов
/ 05 октября 2019

В настоящее время Airflow настроен и работает правильно, используя CeleryExecutor в качестве бэкэнда для обеспечения горизонтального масштабирования. Это работает очень хорошо, особенно когда рабочие узлы находятся в группе автоматического масштабирования в EC2.

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

Один из способов сделать это - запустить службу простого Celery нарабочие серверы Airflow (чтобы воспользоваться преимуществами автоматического масштабирования и т. д.), но это не кажется элегантным решением, поскольку создает два разных «типа» рабочего Celery на одной машине. Мой вопрос заключается в том, есть ли какая-то комбинация параметров конфигурации, которую я могу передать моему простому приложению Celery, которое будет вызывать выполнение украшенных функций @ celery.task непосредственно на моем рабочем кластере Airflow как простая задача Celery, полностью обходя промежуточное ПО Airflow.

Спасибо за помощь.

1 Ответ

0 голосов
/ 05 октября 2019

Приложение airflow.executors.celery_executor.app, если я хорошо помню. Попробуйте celery -A airflow.executors.celery_executor.app inspect active для примера в вашей текущей инфраструктуре Airflow, чтобы проверить это. Тем не менее, я предлагаю вам не делать этого, потому что ваши задачи в Celery могут повлиять на выполнение групп DAG Airflow и могут повлиять на SLA. поддерживать большой кластер Celery, и мы иногда переносим выполнение некоторых задач Airflow в наш кластер Celery, в зависимости от варианта использования. Это особенно удобно, когда задача в нашей Airflow DAG фактически запускает десятки тысяч небольших заданий. Наш кластер Celery выполняет 8 миллионов задач в напряженный день.

...