53 votes

Airflow 1.9.0 fait la queue mais ne lance pas de tâches

La circulation de l'air aléatoire est pas en cours d'exécution en file d'attente des tâches, certaines tâches n'avez même pas obtenir de l'état en attente. Je continue à voir ci-dessous dans le planificateur de journaux

 [2018-02-28 02:24:58,780] {jobs.py:1077} INFO - No tasks to consider for execution.

Je vois des tâches dans la base de données qui soit n'ont pas de statut ou en attente de statut, mais ils n'ont jamais commencer.

La circulation de l'air installation est en cours d'exécution https://github.com/puckel/docker-airflow sur ECS avec Redis. Il y a 4 ordonnanceur de threads et 4 de Céleri travailleur tâches. Pour les tâches qui ne sont pas en cours d'exécution sont montrant dans l'attente de l'état (icône grise) lorsque vous passez la souris sur l'icône de la tâche de l'opérateur est nulle et les détails de la tâche, dit:

    All dependencies are met but the task instance is not running. In most cases this just means that the task will probably be scheduled soon unless:- The scheduler is down or under heavy load

Métriques sur le planificateur ne montrent pas de charge lourde. Le dag est très simple avec 2 tâches indépendantes ne dépend que de la dernière exécution. Il y a aussi des tâches dans le même dag qui sont coincés avec pas de statut (icône blanche).

Chose intéressante à noter est lorsque je redémarre le planificateur de tâches de changement d'état en cours d'exécution.

91voto

tobi6 Points 4204

La circulation de l'air peut être un peu délicat à mettre en place.

  • Avez-vous de l' airflow scheduler en cours d'exécution?
  • Avez-vous de l' airflow webserver en cours d'exécution?
  • Avez-vous vérifié que tous les DAGs vous souhaitez exécuter sont définies pour Sur dans l'interface web?
  • Faire toutes les DAGs vous souhaitez exécuter ont une date de début qui est dans le passé?
  • Faire toutes les DAGs vous souhaitez exécuter d'avoir un bon programme qui est indiqué dans l'interface web?
  • Si rien ne fonctionne, vous pouvez utiliser l'interface utilisateur web, cliquez sur le groupe, puis sur la Vue du Graphique. Maintenant, sélectionnez la première tâche et cliquez sur l' Instance de la Tâche. Dans le paragraphe Instance de la Tâche de Détails , vous verrez pourquoi un DAG est en attente ou pas en cours d'exécution.

J'ai eu par exemple un DAG qui était mal réglé depends_on_past: True qui interdisent l'instance actuelle de démarrer correctement.

Aussi une excellente ressource directement dans les docs, qui a un peu plus de conseils: Pourquoi ce n'est pas ma tâche se programmée?.

16voto

tedmiston Points 465

Je suis en cours d'exécution d'un fork de la puckel/docker-la circulation de l'air résultant de pensions ainsi, la plupart du temps sur la circulation de l'Air de 1,8 pour environ un an avec 10M+ tâche des instances. Je pense que le problème persiste en 1.9, mais je ne suis pas positif.

Pour une raison quelconque, il semble y avoir un problème de longue date avec le flux d'Air planificateur où les performances se dégradent au fil du temps. J'ai passé en revue le planificateur de code, mais je suis toujours dans le flou sur ce qui se passe exactement différemment sur un nouveau départ pour rebondir dans la planification normalement. Une différence importante est que prévue et tâche en file d'attente les états sont reconstruits.

Planificateur de Bases dans le flux d'Air wiki donne une synthèse de référence sur la façon dont le planificateur de travaux et de ses différents états.

La plupart des gens à résoudre le planificateur de diminuer le débit de problème en redémarrant le planificateur régulièrement. J'ai trouvé le succès à 1 heure d'intervalle personnellement, mais j'ai vu aussi fréquemment que toutes les 5-10 minutes de trop. Votre tâche volume, de la durée de la tâche, et le parallélisme paramètres sont à envisager lors de l'expérimentation avec un intervalle de redémarrage.

Pour plus d'infos, voir:

Cette habitude d'être traitée par le redémarrage de toutes les X s'exécute à l'aide de l' SCHEDULER_RUNS paramètre de configuration, bien que ce paramètre a été récemment retiré de la systemd par défaut des scripts.

Vous pourriez aussi envisager d'afficher le flux d'Air dev mailing list. Je sais que cela a été discuté il y a quelques temps et l'un des principaux contributeurs peuvent être en mesure de fournir un contexte supplémentaire.

Questions Connexes

4voto

Shahbaz Ali Points 576

Je suis confronté à la question aujourd'hui et a constaté que le point de balle 4 de tobi6 réponse ci-dessous élaboré et résolu la question

J'utilise la version flux d'air v1.10.3

4voto

Prithu Srinivas Points 33

Mon problème a été une étape supplémentaire, en plus de mes tâches en file d'attente, je ne pouvais pas voir l'un de mes céleri travailleurs sur la Fleur de l'INTERFACE utilisateur. La solution est que, depuis que j'ai été l'exécution de mon céleri travailleur en tant que root, j'ai dû faire des changements dans mon ~/.bashrc fichier.

Les étapes suivantes de le faire fonctionner:

  1. Ajouter l'exportation C_FORCE_ROOT=true à votre ~/.fichier bashrc
  2. source ~/.bashrc
  3. Exécuter travailleur : nohup la circulation de l'air travailleur $* >> ~/air/logs/travailleur.journaux &

Vérifiez votre Fleur de l'INTERFACE utilisateur à l'adresse http://{HOST}:5555

0voto

Nhat Cuong Ha Points 11

Une chose à vérifier est de savoir si "la simultanéité paramètre de votre DAG arrivé?".

J'avais vécu la même situation lorsqu'une tâche a été montré que PAS de STATUT.

Il s'est avéré que mon File_Sensor tâches ont été exécutés avec délai d'attente mis en place pour 1 semaine, tandis que DAG le temps n'était que de 5 heures. Que au plomb pour le cas lorsque les Fichiers sont manquants, de nombreux capteurs chargé étaient en cours d'exécution en même temps. Qui entraîne la simultanéité surchargé!

La fonction tâches ne pouvait pas être démarré avant que le capteur de la tâche de réussir, lorsque le groupe de délai d'attente, ils ont PAS de STATUT.

Ma solution:

  • Soigneusement définir les tâches et les DAG délai d'attente
  • Augmentation dag_concurrency dans la circulation de l'air.fichier cfg dans AIRFLOW_HOME dossier.

Veuillez vous reporter à la documentation. https://airflow.apache.org/faq.html#why-isn-t-my-task-getting-scheduled

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X