1
votes

Le planificateur de flux d'air plante lorsque nous déclenchons le DAG à partir du serveur Web Airflow

Le processus du planificateur de flux d'air se bloque si nous commençons à activer le DAG et le DAG de déclenchement à partir du serveur Web Airflow.

Version Airflow - ** v1.10.4

Serveur Redis v = 5.0.7

exécuteur = CeleryExecutor

scheduler_job.py:1325} ERROR - Exception when executing execute_helper
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/airflow/jobs/scheduler_job.py", line 1323, in _execute
    self._execute_helper()
  File "/usr/lib/python2.7/site-packages/airflow/jobs/scheduler_job.py", line 1412, in _execute_helper
    self.executor.heartbeat()
  File "/usr/lib/python2.7/site-packages/airflow/executors/base_executor.py", line 132, in heartbeat
    self.trigger_tasks(open_slots)
  File "/usr/lib/python2.7/site-packages/airflow/executors/celery_executor.py", line 203, in trigger_tasks
    cached_celery_backend = tasks[0].backend
  File "/usr/lib/python2.7/site-packages/celery/local.py", line 146, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/usr/lib/python2.7/site-packages/celery/app/task.py", line 1037, in backend
    return self.app.backend
  File "/usr/lib/python2.7/site-packages/kombu/utils/objects.py", line 44, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/usr/lib/python2.7/site-packages/celery/app/base.py", line 1223, in backend
    return self._get_backend()
  File "/usr/lib/python2.7/site-packages/celery/app/base.py", line 940, in _get_backend
    self.loader)
  File "/usr/lib/python2.7/site-packages/celery/app/backends.py", line 74, in by_url
    return by_name(backend, loader), url
  File "/usr/lib/python2.7/site-packages/celery/app/backends.py", line 54, in by_name
    cls = symbol_by_name(backend, aliases)
  File "/usr/lib/python2.7/site-packages/kombu/utils/imports.py", line 57, in symbol_by_name
    module = imp(module_name, package=package, **kwargs)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named 'db

Se bloque avec le message d'erreur ci-dessous.

broker_url = 'redis://:password@redis-host:2287/0'
sql_alchemy_conn = postgresql+psycopg2://user:password@host/dbname

result_backend = 'db+postgresql://user:password@host/dbname'

Pourquoi le planificateur plante-t-il lorsque le DAG est déclenché? J'ai essayé d'exécuter pip install DB mais cela n'a pas résolu le problème.


0 commentaires

3 Réponses :


0
votes

Comme l'indique l'erreur. Vous ne devez pas avoir configuré correctement votre base de données.


0 commentaires

1
votes

Avez-vous fait

$ airflow initidb

avant d'essayer de démarrer le serveur Web ?
De plus, vous semblez utiliser python 2.7 , êtes-vous sûr qu'il est compatible avec la dernière version de airflow que vous utilisez?
J'utilisais python 3.5.2 avec le dernier airflow et cela ne fonctionnait pas pour moi et j'ai donc dû rétrograder un peu ma version de airflow .


0 commentaires

0
votes

Airflow n'est pas compatible avec la version 2.7 de Python Exécutez airflow avec python 3.6, puis créez un utilisateur db et accordez des privilèges, puis exécutez la commande " airflow initdb ". Cela initialisera votre base de données dans le flux d'air.


0 commentaires