개요

맥북에 Airflow 최신버전인 2.2.3를 설치해보고 과정을 정리한다.

설치방식

설치방식은 아래 2개가 있다. 실제로는 k8s로 띄우는것도 있고 선택의 폭이 더 있을거라 생각한다. 이중에서 공부차원에서 pip로 직접 설치해 보기로 한다. 나아가 airflow dag를 로컬개발하여 검증하기에도 pip 방식이 가장 적합할것 같다.

  • pip 설치
  • docker-compose 띄우기
  • helm or k8s

virtualenv 설치

pip 의존성으로 부터 멘탈을 지키기 위해 맥북에 virtualenv를 생성 후 pip 설치를 진행하기로 한다.

찾아보니 virtualenv가 없어 아래로 설치하였다.

$ pip install virtualenv
$ pip install virtualenvwrapper

이후 virtualenv profile 생성 후 활성화 해주자.

$ virtualenv --system-site-packages -p python3 py39
$ source ~/py39/bin/activate

Airflow 설치

요약하면 pip를 통해 바이너리 실행이 가능하게 설치하는 것이다.

설치 설명링크를 참고하여 설치하면 된다.

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 "${CONSTRAINT_URL}"

airflow 실행방법 #1: standalone

이후 아래와 같이 실행후 localhost:8080으로 접속하면 된다.

airflow standalone

정상 로그가 올라온 뒤 콘솔에 찍힌 username, password로 브라우저에서 접속해보면 로그인 화면이 나온다.

기본 airflow/airflow로 로그인 하면 드디어 첫 구동화면을 볼 수 있다.

airflow 실행방법 #2: 계정 발급 및 실행

이 방법은 직접 사용할 계정을 발급 한 뒤 webserver, scheduler를 각각 띄우는 방법이다.

airflow db init

airflow users create --username admin --firstname kwangsik --lastname lee --role Admin --email lks21c@gmail.com

airflow webserver --port 8080

airflow scheduler

유의할점

  • 위 airflow 실행 시 DB는 sqlite, executor는 SequentialExecutor를 쓴다고 하니 성능 제약에 유의하자.