web-dev-qa-db-fra.com

Flux d'air: tâches en attente mais non exécutées

Je suis nouveau dans le domaine des flux d’air et j’essaie de le configurer pour faire fonctionner les pipelines ETL. J'ai pu installer 

  1. flux d'air
  2. postgres
  3. céleri
  4. rabbitmq

Je suis capable de tester le tour de dagu. Lorsque j'essaie de planifier les travaux, le planificateur est en mesure de le récupérer et de mettre en file d'attente les travaux que je pouvais voir sur l'interface utilisateur, mais les tâches ne sont pas en cours d'exécution. Quelqu'un pourrait-il m'aider à résoudre ce problème? Je crois que le concept de flux d’air le plus fondamental me manque ici. ci-dessous est le flux d'air.cfg 

Voici mon fichier de configuration:

[core]

airflow_home = /root/airflow

dags_folder = /root/airflow/dags

base_log_folder = /root/airflow/logs

executor = CeleryExecutor

sql_alchemy_conn = postgresql+psycopg2://xxxx.amazonaws.com:5432/airflow

api_client = airflow.api.client.local_client


[webserver]


web_server_Host = 0.0.0.0

web_server_port = 8080

web_server_worker_timeout = 120

worker_refresh_batch_size = 1

worker_refresh_interval = 30

[celery]

celery_app_name = airflow.executors.celery_executor

celeryd_concurrency = 16

worker_log_server_port = 8793

broker_url = amqp://rabbit:[email protected]/rabbitmq_vhost

celery_result_backend = db+postgresql+psycopg2://postgres:[email protected]:5432/airflow


flower_Host = 0.0.0.0

flower_port = 5555

default_queue = default

DAG: Ceci est le tutoriel utilisé par dag

et la date de début pour mon dag est - 'start_date': datetime (2017, 4, 11),

5
Deepak S

faites exécuter toutes les trois composantes du flux d'air, à savoir:

airflow webserver
airflow scheduler
airflow worker

Si vous n'exécutez que les deux précédents, les tâches seront mises en file d'attente, mais ne seront pas exécutées. travailleur de flux d'air fournira les travailleurs qui exécutent réellement les dags.

En outre, céleri 4.0.2 n'est pas compatible avec airflow 1.7 ou 1.8 pour le moment. Utilisez céleri 3 à la place.

6
Xia Wang

Je me rends compte que votre problème a déjà été résolu et qu'il était lié à une non concordance de version de céleri, mais j'ai également vu des tâches en file d'attente ne jamais être exécutées car j'ai modifié l'emplacement des journaux dans un endroit où l'utilisateur du service de flux d'air n'avait pas l'autorisation d'écrire.

Dans l'exemple d'airflow.cfg donné dans la question ci-dessus: base_log_folder = /root/airflow/logs

J'utilise une machine AWS EC2 et j'ai modifié les journaux pour écrire dans base_log_folder = /mnt/airflow/logs

Dans l'interface utilisateur, rien n'indique pourquoi les tâches sont en file d'attente. Il indique simplement "toutes les dépendances inconnues sont respectées ...". Il a été corrigé en donnant à l'utilisateur du service/démon Airflow le droit d'écrire.

0
Davos

J'ai aussi essayé de passer à la version d'airflow v1.8 aujourd'hui et je me suis débattu avec le céleri et le lapin. Ce qui a aidé, c’est le passage de librabbitmq (utilisé par défaut à l’amqp) à pyamqp dans airflow.cfg.

broker_url = pyamqp://rabbit:[email protected]/rabbitmq_vhost

(C’est là où j’ai eu l’idée de: https://github.com/celery/celery/issues/3675 )

0
Olaf