반응형
Airflow backfill 과정에서 backfill이 안되는 경우
Airflow 2.9.1 버전을 기준으로 airflow backfill을 실행하는 과정에서 겪었던 backfill이 안되는 다양한 이슈에 대해 정리합니다.
하나의 DAG에 대해 2개 이상의 backfill을 수행하는 경우
Deadlock 에러가 발생하면서 실행이 안되는 이슈가 있습니다. 따로 해결 방안은 없고 그냥 최대 1개의 backfill만 수행하도록 하며 필요한 경우 DAG를 복제해서 여러개를 돌리거나 혹은 max_active_runs 값을 늘려서 해당 backfill 잡이 여러 개의 dag run을 수행할 수 있도록 합니다.
DAG에 명시된 start_date와 end_date를 벗어나는 기간에 대해 backfill을 수행하는 경우
주어진 DAG가 수행할 수 있는 날짜 범위를 벗어난 경우에 해당합니다. 이를 해결하기 위해서는 DAG를 수정해서 start_date와 end_date 값을 backfill을 수행할 기간보다 더 길게 잡아야 합니다.
backfill 과정에서 주의할 점
backfill 명령어의 경우 관련 task에 대한 수행을 scheduler가 담당하는 것이 아니라 backfill 명령어를 수행한 서버가 책임을 가지고 있습니다.
그렇기 때문에 backfill로 수행했던 task를 clear하는 경우 해당 task는 정상적으로 실행되지 않는 이슈가 있습니다.
이를 해결하기 위해서는 backfill 명령어를 다시 수행해서 해당 일자를 돌릴 수 잇도록 해야 합니다.
만약 특정 task 이후의 잡을 재실행해야 한다면 해당 task를 강제로 failed 상태로 변경하고 backfill 명령어를 실행할 때 --rerun-failed-tasks
옵션을 주고 수행하면 됩니다.
반응형
'일상 > TIL' 카테고리의 다른 글
TIL - 20241119 (0) | 2024.11.19 |
---|---|
TIL - 20241115 (0) | 2024.11.15 |
TIL - 20241113 (0) | 2024.11.13 |
TIL - 20241112 (1) | 2024.11.12 |
TIL - 20241110 (3) | 2024.11.10 |