7 erreurs courantes à vérifier lors du débogage des DAG Airflow

Les tâches ne sont pas en cours d'exécution? DAG ne fonctionne pas? Les journaux ne sont pas trouvés? Nous avons eu les mêmes problèmes. Voici une liste des erreurs courantes et des correctifs associés à garder à l'esprit lors du débogage de votre déploiement Airflow.







Apache Airflow est devenu le principal planificateur de tâches open source pour presque tous les types de travail, de la formation d'un modèle d'apprentissage automatique à l'orchestration générale ETL. C'est un outil incroyablement flexible que nous pouvons dire d'après l'expérience qui prend en charge des projets critiques pour les startups de cinq personnes et les équipes Fortune 50.







Cela dit, l'outil même que beaucoup considèrent comme une puissante «toile vierge» peut rapidement devenir une épée à double tranchant si vous débutez. Et malheureusement, il n'y a pas une richesse particulièrement écrasante de ressources et de meilleures pratiques un pas ou deux au-dessus des fondations de base d'Apache Airflow.







Afin de combler au maximum cette lacune, nous avons compilé certains des problèmes les plus courants auxquels presque tous les utilisateurs sont confrontés, quelle que soit l'expérience et la taille de leur équipe. Que vous soyez nouveau dans Airflow ou un utilisateur expérimenté, consultez cette liste d'erreurs courantes et quelques correctifs connexes à garder à l'esprit.







1. Votre DAG ne fonctionne pas au moment requis



DAG, . , 14:00, , . 15:30 , DAG , , 14:00. 3 ?







( ), , . Airflow ( Airflow), . :







  • Airflow DAG schedule_interval



    .


    , schedule_interval



    . , DAG 2 , 3 . , Airflow , , 2 , .

    Airflow, , .
  • Airflow UTC.

    , , API, , , .

    , DAG- . , DAG 19:00 12:00 .

    1.10, Airflow , - DAG UTC .


2. DAG



, , DAG , - , .







,

datetime.now()





start_date



.







, DAG



,



. , , Airflow datetime.now()



.







DAG start_date



, Airflow , . Airflow DAG, datetime.now()



(.. ) , . , Airflow DAG 5-10 , .







DAG, (, datetime(2019,1,1)



) catchup=False ( ).







. DAG Airflow ( Play



). , , DAG, . , run_id



manual__



scheduled__



.







3. 503



Airflow , , -, , - -.

503, , -.







-



503 - ( deployment kubernetes), Airflow, Airflow. - , -.







, 503 , - (, Astronomer kubernetes CrashLoopBackOff



). deployment kubernetes, - - , (10 ), , . , .







deployment , , - DAG ( , ).









  1. -?

    Airflow 1.10 , Airflow 1.9, ( ), , 503- . , -.

    Astronomer, - 5 AU (Astronomer Units).







  2. -?

    - ( ), web_server_master_timeout



    web_server_worker_timeout



    .

    - Airflow , 503 (-). , deployment , , , 503.







  3. ?

    API, JSON , - - .

    Airflow DAG, ( ). , , , , .

    , , Python.









4.



, .







Sensors



Airflow 1.10.1 , , , , . , , , , .







, X , (sensors?), X-3 . , (sensors?), , ( (sensors?) ).







:







  1. DAG, .

    , — , .







    2. -









: Airflow v1.10.2 mode = reschedule



. , , up_for_reschedule



, .







5. ,



, , , , : Env



, + Worker Scheduler.







1. Env (Concurrency)



( ), — , DAG DAG ? , , , . , :







1. ()







  • , (parallel) DAG , . « ».







  • ENV AIRFLOW__CORE__PARALLELISM=18
          
          







2. Concurrency DAG (dag_concurrency)







  • , DAG. « , DAG».







  • ENV AIRFLOW__CORE__DAG_CONCURRENCY=16
          
          







3. (Nonpooledtaskslotcount)







  • , « », .







  • ENV AIRFLOW__CORE__NON_POOLED_TASK_SLOT_COUNT=256
          
          







4. DAG (maxactiverunsperdag)







  • , DAG DAG.







  • ENV AIRFLOW__CORE__MAX_ACTIVE_RUNS 3
          
          







5. Concurrency (worker_concurrency)







  • , . , CeleryExecutor 16 . « ».







  • , , , dagconcurrency. 1 , , workerconcurrency



    = parallelism



    .







  • ENV AIRFLOW__CELERY__WORKER_CONCURRENCY=9
          
          







6. ()







  • . «» DAG , DAG. , , airflow.cfg



    .


: DAG API, «» — t, , .







2.



concurrency , , (deployment) . Astronomer, 5 AU Scheduler 10 AU Celery, .







, , :







  • DAG , , , 2 3 «» .
  • , , , , , « » , .


Executors Airflow Executors: Explained Guide.







6.



, - , .







- :







Failed to fetch log file from worker. Invalid URL 'http://:8793/log/staging_to_presentation_pipeline_v5/redshift_to_s3_Order_Payment_17461/2019-01-11T00:00:00+00:00/1.log': No host supplied
      
      





, :







  1. () , , , .







    /







  2. log_fetch_timeout_sec



    5 ( ).







    ( ), - (handshake) .













  3. Astronomer, Configure



    Astronomer.







  4. , 15 ?







    Astronomer, — , . , 15 .







  5. Celery, .







    , Kubernetes.







    Kubectl : kubectl exec -it {worker_name} bash









    ~/logs



    . DAG/TASK/RUN



    .







  6. .







    , , , . , Airflow , - .







    airflow.cfg



    run_duration



    . run_duration



    , -1



    , , , , run_duration



    , 3600



    , . . , , , .









Astronomer, :







  • AIRFLOW__SCHEDULER__RUN_DURATION={num_seconds_between_restarts}



    Astronomer
  • Exécutez astro airflow deploy



    via l'interface de ligne de commande pour tout redémarrer immédiatement (si vous utilisez Celery, vous pouvez profiter de la période de grâce de résiliation du travailleur que vous pouvez utiliser ici pour minimiser les échecs immédiats existants dans l'exécution des tâches)


Cette liste est basée sur notre expérience en aidant les clients Astronomer avec des problèmes de flux d'air de base, mais nous voulons avoir de vos nouvelles. N'hésitez pas à nous contacter à people@astronomer.io si nous avons oublié quelque chose que vous pensez qu'il serait utile d'inclure.







Si vous avez d'autres questions ou recherchez l'assistance Airflow de notre équipe, veuillez nous contacter ici.








All Articles