개요

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

설치방식

설치방식은 아래 2개가 있다. 실제로는 k8s로 띄우는것도 있고 선택의 폭이 더 있을거라 생각한다. 이중에서 공부차원에서 pip로 직접 설치해 보기로 한다.

  • pip 설치
  • docker-compose 띄우기

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를 통해 바이너리 실행이 가능하게 설치하는 것이다.

설치 설명링크를 참고하면 설치가 되는데 python39 기준으로는 문제가 하나 있었다.

요점은 아래 스크립트 실행시의 constrain_url 중에 Flask-AppBuilder==3.1.1에서 conflict가 발생해서 이부분을 빼고 설치를 진행하니 정상 진행되었다.

pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

Airflow 사용자 생성 스크립트는 아래와 같이 커스터마이즈 하였다. 이후 프롬프트에서 비번을 입력하면 사용자가 정상 생성된다.

airflow users create \
    --username kwangsik \
    --firstname kwangsik \
    --lastname lee \
    --role Admin \
    --email lks21c@gmail.com    
[2021-06-25 17:37:32,168] {manager.py:784} WARNING - No user yet created, use flask fab command to do it.
Password:
Repeat for confirmation:
Admin user kwangsik created

Airflow Server 실행하기

# start the web server, default port is 8080
airflow webserver --port 8080

정상 로그가 올라온 뒤 브라우저에서 접속해보면 로그인 호면이 나온다.

이후 아까 생성한 계정으로 로그인 하면 드디어 첫 구동화면을 볼 수 있다.

Airflow Scheduler 실행하기

터미널을 한나 더 열어서 스케쥴러를 실행해 주면 된다.

# start the scheduler
# open a new terminal or else run webserver with ``-D`` option to run it as a daemon
airflow scheduler