-
[Airflow] 설치, 초기 세팅Programming/Network & cloud 2024. 2. 29. 19:44
변성윤님의 Airflow 강의를 실습하면서 나를 위해 다시 정리해보았다.
데이터 관리나 모델 서빙에서 자주 쓰이는 도구이니 사용법을 잘 알아놔야겠다.
Airflow란?
- Airbnb에서 개발
- 스케줄링 및 워크플로우 도구
- 데이터 처리 파이프라인을 효율적으로 관리
- web UI 제공
Airflow 설치하기
directory 만들고 이동 후,
1. 가상환경 설정
python -m venv.venv source .venv/bin/activate
2. 설치
pip3 install pip --upgrade AIRFLOW_VERSION=2.6.3 PYTHON_VERSION="$(python --version | cut -d" " -f2 | cut -d"." -f1-2)" CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" pip3 install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
3. Airflow에서 사용할 DB 초기화
# 현재 폴더에서 작업하기 위한 설정 export AIRFLOW_HOME=`pwd` # 확인 echo $AIRFLOW_HOME airflow db init
이때 'pwd'가 아니라 `pwd`임을 주의.
엔터 옆의 '' 가 아니라 숫자키 옆의 `임.
만약 ''로 하면 init할때 에러 발생함
ls 명령어로 확인하면
airflow.cfg airflow.db logs pwd webserver_config.py
이렇게 출력이 되는데
airflow.cfg : Airflow 설정파일
airflow.db : Airflow DB (여기서는 SQLite 사용)
airflow.cfg 파일을 열어서
이 부분으로 예제 파일을 on/off 할 수 있음
4. 계정 생성
airflow user create --username {name} --password '{password}' --firstname {fname} --lastname {lname} --role Admin --email {email}
이런식으로 입력해준다.
괄호는 당연히 개인의 설정 값으로 바꿔주면 된다.
5. Ariflow Webserver 실행
airflow webserver --port 8080
web에서 로그인하면 아래와 같은 화면이 나온다.
DAG이 여러개 출력되는 이유는 load_examples = True로 했기 때문
6. Scheduler 실행하기
새로운 터미널을 만들고 가상환경을 실행한다.
source .venv/bin/activate export AIRFLOW_HOME=`pwd` airflow scheduler
이후에 web에서 새로고침하면 아까 나오던 scheduler 관련 에러가 사라져있다.
만일 Port에 이슈가 있다면 (껐다 켰다 하는데 제대로 안 꺼졌을 수 있음)
kill $(lsof -t -i:{post번호})
로 kill 해준다.
7. 새로운 터미널에서 dags 라는 폴더를 만들고 파이썬 파일을 만든다.
mkdir dags cd dags # DAG 파일 만들기
8. 웹에서 새롭게 만든 DAG 파일을 확인한다.
web, scheduler를 껐다 키면 빠르게 반영된다.
맨 왼쪽의 토글 버튼을 활성화 시킨 후 hello_world를 클릭하면 아래와 같은 페이지가 나온다.
Slack과도 연동해서 실패알림을 전달할 수 있음 : 모니터링
(Slask API 사용)
'Programming > Network & cloud' 카테고리의 다른 글
오쪼쪼 나에 작은 첫 도커... (0) 2023.08.16 [네트워크] 기본 지식 공부 (0) 2023.05.31 [TIL] 230517 - cloud computing, Iaas/Paas/SaaS (0) 2023.05.18