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.