7 erros comuns para verificar ao depurar DAGs do Airflow

As tarefas não estão funcionando? O DAG não está funcionando? Os logs não foram encontrados? Tivemos os mesmos problemas. Aqui está uma lista de erros comuns e algumas correções relacionadas a serem lembradas ao depurar a implantação do Airflow.







O Apache Airflow se tornou o agendador de tarefas de código aberto líder para quase qualquer tipo de trabalho, desde o treinamento de um modelo de aprendizado de máquina até a orquestração ETL geral. É uma ferramenta incrivelmente flexível que podemos dizer por experiência própria oferece suporte a projetos de missão crítica para startups de cinco pessoas e equipes Fortune 50.







Com isso dito, a própria ferramenta que muitos consideram uma poderosa "tela em branco" pode rapidamente se tornar uma faca de dois gumes se você estiver apenas começando. E, infelizmente, não há uma riqueza particularmente esmagadora de recursos e práticas recomendadas um ou dois passos acima dos fundamentos básicos do Apache Airflow.







Em um esforço para preencher essa lacuna tanto quanto possível, compilamos alguns dos problemas mais comuns que quase todos os usuários enfrentam, não importa o quão experiente e grande seja sua equipe. Se você é novo no Airflow ou um usuário avançado, verifique esta lista de erros comuns e algumas correções relacionadas para manter em mente.







1. Seu DAG não está funcionando no tempo necessário



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
  • Execute astro airflow deploy



    a CLI para reiniciar tudo imediatamente (se estiver usando o Celery, você pode aproveitar o período de carência de rescisão do trabalhador, que pode ser usado aqui para minimizar as falhas imediatas existentes na execução da tarefa)


Esta lista é baseada em nossa experiência em ajudar clientes do Astrônomo com problemas básicos de fluxo de ar, mas queremos ouvir você. Sinta-se à vontade para entrar em contato conosco pelo e-mail people@astronomer.io se tivermos esquecido de algo que você acha que seria útil incluir.







Se você tiver mais perguntas ou estiver procurando suporte para o Airflow de nossa equipe, entre em contato conosco aqui.








All Articles