최대 1 분 소요

 안녕하세요 마개입니다.
Airflow를 운영함에 있어 DAG에 이슈가 있을 때 체크해봐야할 사항들에 대해 알아봅니다. 자료는 Marc Lamberti님의 자료를 참고했습니다.


image



DAG가 UI에 나타나지 않을 때

  • UI에 import error가 있는지 체크합니다. error가 발견되면 코드 상에 error가 있는 것입니다.
  • 페이지를 새로고침하기 전에 5분 기다리세요.
  • DAG를 볼 수 있는지 Roles에서 권한을 확인하세요.
  • airflow dags list CLI 명령어를 통해 DAG가 등록되었는지 확인하세요.
  • Webserver와 Scheduler를 재시작해보세요.
  • DAGs 폴더에 DAG 파일이 있는지 체크하세요.



의존성 충돌이 있을 때

  • PythonVirtualenvOperator를 사용하세요.
  • DockerOperator를 사용하세요.
  • KubernetesPodOperator를 사용하세요.



Task가 실행되지 않을 때 (Running)

  • DAG가 중지 상태가 아닌지 확인하세요.
  • DAG의 start_date가 과거 날짜인지 확인하세요.
  • Scheduler가 정상적으로 실행 중인지 확인하고 아니라면 재시작하세요.
  • 기본 pools 또는 그외에 Worker의 여유 slot이 충분한지 확인하세요.
  • DAG 단계의 concurrencymax_active_tasks 속성을 확인하세요.
  • Task 단계의 max_active_tis_per_dagtask_concurrency를 확인하세요.
  • Airflow 차원에서 parallelismmax_active_runs_per_dag를 확인하세요.



Log가 보이지 않을 때

  • Task Instance를 clear하여 task를 재실행해보세요.
  • log_fetch_timeout_sec 속성을 5초 이상으로 늘려보세요.
  • Worker의 가용 자원을 늘려보세요. (CeleryExecutor일 때)
  • delete_kubernetes_worker_pods 속성을 False로 설정하세요. (K8sExecutor일 때)