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.
3 Réponses :
Comme l'indique l'erreur. Vous ne devez pas avoir configuré correctement votre base de données.
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 .
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.