에어플로우
-
[Airflow] 에어플로우 Main, MySQL 서버 IP 주소 변경으로 인한 Airflow woker 실행 문제 해결(Feat. Docker container)Airflow 2021. 9. 7. 23:50
🙊 배경설명 추천 Airflow를 1.10.9버전에서 1.10.14버전으로 upgrade하면서 Airflow main 서버와 Airflow MySQL 서버 IP 주소가 바뀌었고, 그로인해 이전 IP 주소를 보고 있던 worker는 실행되지 못하고 있었다. 🙈 문제점 keyword_train은 keyword_product 라는 ec2 서버 안의 컨테이너에서 worker로 실행되고 있었고, 새로운 서버의 IP 주소를 설정하기 위해서는 airflow를 처음 실행할 때 생성되는 airflow.cfg에 바뀐 주소값들로 변경해야 했다. 그러나, 문제는 처음 이미지로 빌드되어 컨테이너가 실행될 때 Dockerfile의 기본 명령어가 반영된다는 점이다. 즉, 컨테이너 실행의 베이스가 되는 Dockerfile 내부의 C..
-
[Airflow] Airflow ExternalTask Sensor 생성하기Airflow 2021. 8. 9. 00:06
배경설명 매일 각 고객사별로 검색어 추천용 데이터를 수집하기 위한 DAG가 돌아가는데 모든 고객사 DAG들이 돌고 난 이후 검색어 추천 모델 배포용 DAG가 자동으로 실행(trigger)될 수 있도록 고객사 데이터 수집 -> 모델 학습 -> 그리고 자동으로 배포까지 가능한 자동화 파이프라인을 리서치해봄. 해결방안 이 문제해결을 위한 요구조건으로는 모든 DAG들이 돌았음을 감지하는 무언가가 필요했고 Airflow에 있는 기능 중 ExternalTaskSensor가 그 역할을 할 수 있다고 판단하여 TEST 진행함. *유의사항 ExternalTaskSensor는 무조건 해당 dag의 스케줄 시간이 정확히 맞는 run만 sensing 한다. https://uiandwe.tistory.com/1302 airfl..
-
[Airflow] 에어플로우 execution_date DAG 스케줄러 에러(feat.run_id)Airflow 2021. 7. 8. 22:31
🙊 문제상황 schedule로 돌리면 하루 전 날짜(-24H)가 찍혀서 출력됨 manual로 돌리면 정상 시간 출력 확인 🙈 원인파악 Airflow 내부 execution_date는 DAG 실행 예약 시간으로 DAG가 실행되는 시간에 다음 스케줄을 예약한다. 즉, execution_date은 실행날짜가 아닌 주문번호(run_id)의 개념. run_id: 예약을 잡으려고 시도한 시간 23일 schedule DAG 실행 -> 24일 schedule DAG 예약 -> 24일 schedule DAG 실행 run_id: 24일 🙉 문제해결 https://airflow.apache.org/docs/apache-airflow/stable/macros-ref.html#macros-reference Macros refe..