Airflow DAG(Directed Acyclic Graph) 개발은 워크플로우의 각 작업을 정의하고, 이러한 작업들이 실행될 순서를 명확하게 규정하는 과정입니다. Airflow의 핵심은 DAG이며, DAG는 실행 단위인 태스크(Task)를 연결한 그래프입니다.
설치 명령어는 다음과 같이 pip을 이용해서 간단하게 설치 가능하다.
pip install apache-airflow
그 후 데이터베이스를 초기화 한다.
airflow db init
웹 인터페이스에 로그인하기 위해 필요 필요한 Airflow 사용자 생성를 생성한다.
airflow users create \
--username admin \
--firstname FIRST_NAME \
--lastname LAST_NAME \
--role Admin \
--email EMail
-password PW
다음과 같이 웹서버와 스케줄러 서버를 실행시켜 줄 수 있습니다. 웹서버는 Airflow에서 제공하는 웹 기반 사용자 인터페이스(UI)입니다. 웹서버는 사용자가 DAG를 시각적으로 관리하고 모니터링할 수 있도록 해주는 역할을 합니다. 스케줄러는 Airflow의 핵심 컴포넌트로, DAG가 정의한 스케줄에 따라 태스크를 적절한 시점에 실행시키는 역할을 합니다.
# Airflow 웹서버 시작
airflow webserver --port 8080
# Airflow 스케줄러 시작 (별도의 터미널에서 실행)
airflow scheduler
# Airflow 웹서버 백그라운드 실행
nohup airflow webserver --port 8080 > /dev/null 2>&1 &
# Airflow 스케줄러 백그라운드 실행
nohup airflow scheduler > /dev/null 2>&1 &
# 실행 상태 확인
ps aux | grep airflow
# PID를 확인하고 종료
ps aux | grep airflow
kill <PID>
pkill -f "airflow webserver"
pkill -f "airflow scheduler"
DAG에서 해당 테스크가 실행중일 때는 정상적으로 표시되지만 작업이 종료되면 DAGs에서 사라진다. 그 뒤 갑자기 실행될 때 다시 나타나는 문제가 있었다. 처음에는 에어플로우 버젼을 조금씩 낮춰보았지만 동일했다. 문제가 됐던 부분은 바로 파이썬 버젼이었다. 파이썬 버젼을 3.12 사용중이었는데 3.9로 낮추니 정상 적으로 보여졌다.
댓글