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
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),
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.
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.
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 )