Apache Airflow исполнитель сельдерея не получает результат бэкэнд - PullRequest
0 голосов
/ 08 мая 2018

Я использую Apache Airflow версии 1.9.0, и когда я пытаюсь запустить задачу из пользовательского интерфейса, я получаю следующую ошибку в консоли планировщика воздушного потока:

[2018-05-08 12:09:06,737] {jobs.py:1077} INFO - No tasks to consider for execution.
[2018-05-08 12:09:06,738] {jobs.py:1662} INFO - Heartbeating the executor
[2018-05-08 12:09:06,738] {celery_executor.py:101} ERROR - Error syncing the celery executor, ignoring it:
[2018-05-08 12:09:06,738] {celery_executor.py:102} ERROR - No result backend configured.  Please see the documentation for more information.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/airflow/executors/celery_executor.py", line 83, in sync
    state = async.state
  File "/usr/local/lib/python2.7/dist-packages/celery/result.py", line 329, in state
    return self.backend.get_status(self.id)
  File "/usr/local/lib/python2.7/dist-packages/celery/backends/base.py", line 547, in _is_disabled
    'No result backend configured.  '
NotImplementedError: No result backend configured.  Please see the documentation for more information.

В моем файле airflow.cfg у меня есть следующие переменные в секции [celery]:

celery_app_name = airflow.executors.celery_executor
celeryd_concurrency = 16
worker_log_server_port = 8795
broker_url = amqp://guest:guest@localhost:5672//
celery_result_backend = amqp://guest:guest@localhost:5672//
flower_host = 0.0.0.0
flower_port = 5555
default_queue = default

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 08 мая 2018

Вы не должны указывать celery_result_backend на экземпляр RabbitMQ, поскольку цель этого бэкэнда - хранить информацию о состоянии задач, и RabbitMQ не подходит для этого (пожалуйста, исправьте меня, если я ошибаюсь).

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

celery_result_backend = db+postgresql://airflow:****@postgres/airflow

Больше информации на официальных документах: Здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...