작성
·
19
0
강사님, 안녕하세요!
DAG 파일을 추가하거나 수정할 때, Airflow UI에 변경 사항이 자동으로 반영되기까지 보통 1~5분 정도 소요되고 있습니다.
너무 오래 걸리는 경우에는 컨테이너를 재시작해 반영하고 있는데요.
혹시 Dags의 auto-refresh 주기를 단축시킬 수 있는 설정이나, UI 상에서 수동으로 바로 새로고침할 수 있는 방법이 있을까요?
현재 'apache/airflow:3.1.0' 이미지를 사용 중입니다.
답변 2
1
안녕하세요 구기명님!
airflow config parameter 중에서 dag refresh 주기가 있습니다.
airflow 2.x 버전에서는 dag_dir_list_interval 이라는 파라미터였는데 3.0 버전이 되면서 파라미터명이 바꼈습니다. (refresh_interval)
그래서 docker-compose.yaml 파일 내 변수 지정하는 부분에 AIRFLOW__DAG_PROCESSOR__REFRESH_INTERVAL 값을 줄여주시면 좀 더 빠르게 scan 해서 반영합니다.
그런데 Airflow 2.10 버전부터는 Dag refresh 라는 기능이 생겼습니다. 그래서 dag을 수정했을 때는 기다릴 필요 없이 refresh 버튼 누르면 되요. DAG 들어가서 우측 상단에 보시면 Reparse Dag 버튼 누르시면 되요. (이 기능은 Airflow 2.10.5 Update 섹션에서 설명드립니다)
물론 Dag 수정만 바로 반영되는거고, 신규 Dag 같은 경우 어쩔 수 없이 기다려야 합니다. 이럴 때는 아까 설명드린 refresh_interval 주기가 짧을 수록 빨리 반영됩니다. 그런데 너무 짧으면 그만큼 스케줄러의 자원이 많이 잡아먹으므로 적당한 값을 줘야 해요. 실습하는 수준에서는 1분 정도로 설정해도 크게 무리는 없을 것 같습니다.
참고하세요 ^^
0
안녕하세요, 인프런 AI 인턴입니다. 구기명님.
Airflow UI에서 DAG의 변경 사항이 자동으로 반영되기까지 시간이 걸리는 이유는 Airflow 스케줄러와 웹서버가 일정 주기에 따라 DAG 디렉토리를 스캔하기 때문입니다. 기본적으로, Airflow는 5분마다 DAG 디렉토리를 스캔하도록 설정되어 있습니다. 이를 조절하여 refresh 주기를 단축시킬 수 있으며, 몇 가지 방법을 통해 문제를 해결할 수 있습니다.
airflow.cfg
파일에서 dag_dir_list_interval
값을 줄여 스캔 주기를 단축시킬 수 있습니다. 기본값은 300초(5분)이며, 필요에 따라 더 작은 값으로 설정할 수 있습니다. [scheduler]
dag_dir_list_interval = 60
웹서버의 자동 새로고침 설정:
UI에서의 자동 새로고침은 기본적으로 활성화되어 있으며, Airflow UI의 오른쪽 상단에 있는 “Auto-refresh” 버튼을 통해 수동으로 새로고침을 할 수 있습니다. 이 버튼을 클릭하면 DAG 리스트가 최신 상태로 갱신됩니다.
Docker 환경 설정 확인:
Docker 사용 시, 볼륨 설정이나 네트워크 구성에 따라 파일 시스템 변경이 컨테이너 내부에 바로 반영되지 않을 수 있습니다. 이 경우, 웹서버와 스케줄러 컨테이너를 재시작하여 변경 사항이 반영되도록 할 수 있습니다.
다음 링크는 관련 문제와 대응 방법에 대한 기존 답변입니다:
- auto refresh: DAG 변경 사항이 웹 인터페이스에 반영되지 않는 문제와 해결책에 관한 설명이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.