Airflow 디버깅 및 문제 해결

Python으로 배우는 Apache Airflow 입문

Mike Metzger

Data Engineer

일반적인 문제

  • Dag가 스케줄대로 실행되지 않음
  • Dag가 로드되지 않음
  • 구문 오류

일반적인 Airflow 문제 해결 이슈를 나타내는 일러스트

Python으로 배우는 Apache Airflow 입문

Dag가 스케줄대로 실행되지 않을 때

  • 최소 하나의 schedule 주기가 경과하지 않은 경우
    • 요구 사항에 맞게 속성 수정
  • 실행할 리소스가 부족한 경우
    • 시스템 리소스 추가
    • 시스템 증설
    • Dag 스케줄링 변경
Python으로 배우는 Apache Airflow 입문

Dag가 로드되지 않을 때

  • 웹 UI에 Dag가 표시되지 않음
  • airflow dags list에 Dag가 없음

가능한 해결 방법

  • Dag 파일이 올바른 폴더에 있는지 확인 (Dags 폴더 외부의 파일은 파싱되지 않음)
  • airflow info로 Dags 폴더 경로 확인

airflow info 터미널 출력에서 dags_folder 경로가 강조 표시된 화면

Python으로 배우는 Apache Airflow 입문

구문 오류

  • Dag 파일이 표시되지 않는 가장 흔한 원인
  • Dag에서 오류를 찾기 어려울 수 있음
  • 세 가지 빠른 방법:

    • Airflow UI에서 오류 팝업 확인

    • airflow dags list-import-errors 실행

    • python3 <dagfile.py> 실행

Python으로 배우는 Apache Airflow 입문

Airflow UI 가져오기 오류

Dag 가져오기 오류 알림이 표시된 Airflow 환영 페이지

Dag 트레이스백 메시지가 표시된 Airflow 가져오기 오류 상세 화면

Python으로 배우는 Apache Airflow 입문

airflow dags list-import-errors

airflow dags list-import-errors의 터미널 출력에 오류가 표시된 화면

Python으로 배우는 Apache Airflow 입문

airflow dags reserialize

  • Dag 변경 사항이 즉시 반영되지 않을 수 있음
  • 기본적으로 Airflow는 5분마다 Dag 업데이트를 확인함
  • airflow dags reserialize로 강제 재확인 가능

airflow dags reserialize를 실행하여 Dag를 강제로 새로고침하는 터미널 화면

Python으로 배우는 Apache Airflow 입문

Python 인터프리터 실행

python3 dagfile.py:

  • 오류가 있을 때

python3으로 Dag 파일 실행 시 Python 구문 오류가 표시된 터미널 화면

  • 오류가 없을 때

python3으로 Dag 파일 실행 후 오류 없이 프롬프트로 돌아온 터미널 화면

Python으로 배우는 Apache Airflow 입문

연습해 봅시다!

Python으로 배우는 Apache Airflow 입문

Preparing Video For Download...