데이터를 기반으로

Airflow Local Path 관련 이슈 정리 본문

스터디/Apache Airflow

Airflow Local Path 관련 이슈 정리

이노후 2023. 5. 10. 15:14
728x90
반응형

다음 학습인 DAGs 폴더에 파이썬 스크립트인 .py 파일을 업로드 하고, airflow webserver 에서 확인해보면 업로드 되어있어야 할 스크립트 파일이 없는 상황이었다.

 

보통 이러한경우는 크게 2가지로 나뉜다고 한다.

 

1. 스크립트파일(.py) 파일 자체 코드가 실행했을 때, 정상적으로 실행이 안되는 경우

2. DAGs 경로들이 제대로 인식되지 않은 경우

 

우선, 첫 번째 스크립트 파일을 뜯어보았다.

 

책 예제에서 보여주는 'download_rocket_launches.py' 파일이었고, 실행해보니 start_date 관련해서 오류가 발생했다.

(해당 코드는 책에서 제공되는 git 을 로컬에 clone하여 받은 파일이다.)

 

Error Message :

RemovedInAirflow3Warning: Function `days_ago` is deprecated and will be removed in Airflow 3.0. You can achieve equivalent behavior with `pendulum.today('UTC').add(days=-N, ...)`

 

[ 기존 코드 ]

dag = DAG(
    dag_id="download_rocket_launches",
    description="Download rocket pictures of recently launched rockets.",
    start_date=airflow.utils.dates.days_ago(14),
    schedule_interval="@daily",
)

 

[ 수정 코드 ]

local_tz = pendulum.timezone("Asia/Seoul")

dag = DAG(
    dag_id="download_rocket_launches",
    description="Download rocket pictures of recently launched rockets.",
    # start_date=airflow.utils.dates.days_ago(14),
    start_date=pendulum.today('UTC').add(days=-1).replace(tzinfo=local_tz),
    schedule_interval="@daily",
)



수정 코드로 반영하여 직접 실행하니, 해당 코드가 잘 돌아간 것을 확인할 수 있었다.

 

그럼에도 Web server에서는 해당 스크립트 Dag가 보이지 않았다.

 

하여, 2번째 방법을 시도해보았다.

 

2번째 방법도 2개 경로 부분을 수정해줘야 했다.

 

- 'airflow.cfg' 파일의 dags 경로 수정

- 로컬 터미널에서 export 로 airflow home 설정

 

위 dags_folder 부분을 올리고자 하는 dags 가 존재하는 파일 경로로 바꾸었다.

 

export AIRFLOW_HOME=/Users/yooinho/Desktop/study/00.airflow/home

 

해당 명령어로 export 해서 체크해보았다.

(추후 알게된 사실이지만...export 하면 해당 shell 에서만 적용된다는....)

 

우선 위 2 순서를 마무리 하고 다시 실행해보니...여전히 보이지 않고 있었다.

 

 

[ In My Case ]

 

1. airflow dags list 명령어를 통해 현재 해당 Dags 가 어디서 불러오는지 확인

→ 'download_rocket_launches.py' 파일이 보이긴 하는데 왜 못 불러오는 건지...이해가 안되는 상황

airflow dags list-import-errors 해당 명령어로 import 에러를 확인

뭔가....경로가 꼬여도 단단히 꼬인 느낌이 들었다.

→ 우선 중복되어 있는 것 하나를 제거하고 나니 에러 메시지가 보이진 않았고, 여전히 Web server에서는 보이지 않고 있다.

 

2. 실제 airflow가 바라보고 있는 경로는 무엇인지 확인

→ airflow config list 명령어를 통해 실제 경로 확인

→ 보면 내가 바꾼 dags 폴더 빼고는 모두 다 다른 airflow home을 바라보고 있는 것을 확인했다.

 

→ airflow info 명령어를 통해서도 확인이 가능

 

3. home 을 바라보는 경로들을 수정

vi ~/.bash_profile 에서 export를 수정하고, 적용 후 재 실행

 

모든 경로들이 일치한 것을 확인할 수 있었다.

 

728x90
반응형

'스터디 > Apache Airflow' 카테고리의 다른 글

Airflow Webserver 실행안될 때  (0) 2023.06.02
Operator 파악하기  (0) 2023.05.01
Airflow DAG 와 실행 개념  (0) 2023.04.07
Airflow 개념 및 설치  (0) 2023.03.24
Apache Airflow 스터디 시작  (0) 2023.03.24