worflow(작업)을 관리, 스케쥴링, 모니터링, 파이프 관리를 하는 역활을 한다.
airflow는 크게 4개의 구성요소로 이루어져 있다.(task = program)
Airflow Webserver
Airflow Scheduler
Airflow Worker
Airflow Database
DAG(Directed Acyclic Graph)
경로 및 환경 변수 설정
공식문서에서도 기본 경로를 ~/airflow로 권장하고 있다.
여기서 airflow 버전과 python버전이 무엇인지 셋팅을 먼저 해준다.
export AIRFLOW_HOME=~/airflow
AIRFLOW_VERSION=2.2.3
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
pip install "apache-airflow=${AIRFLOW_VERSION}" --constraint "${COPNSTRAINT_URL}"
Airflow 실행 전 셋팅
가장 먼저 DB 초기화가 필요. 그 다음 이 DB를 관리할 사용자 계정을 하나 만들어 준다.
airflow db init
airflow users create --username admin --firstname gy --lastname kim --role Admin --email gykim@intellius.ai
DB를 초기화를 하고 나면 아래와 같은 airflow파일이 생성된다.
.
├── Hatespeech
├── airflow.cfg
├── airflow.db
├── dags
├── logs
│ └── scheduler
│ ├── 2023-01-31
│ └── latest -> /Users/gimgayoung/airflow/logs/scheduler/2023-01-31
└── webserver_config.py
airflow.cfg : 환경설정 파일
airflow.db : DB에 관련된 정보를 저장
logs : 각종 로그를 관리하는 폴더
dags : dag를 관리하는 폴더(dag 파이썬 파일을 여기로)
airflow webserver --port 8080
실행해서 해당 url로 들어가면 위와 같은 로그인창이 뜬다. 아까 입력한 user 정보를 입력하고 들어가면 아래와 같이 나온다.
airflow scheduler
위와 같이 스케쥴러를 실행하면 ui에 dag가 입력된 걸 볼 수 있다.
등록된 dag를 그래프로 볼 수 있으며 실행에 결과와 과정 또한 ui로 확인 가능.