Apache Airflow 설치
2022.07.18 - Apache Airflow란? 에서 Apache Airflow에 대해서 정리해보았으므로, 이 글에서는 설치 방법을 정리한다.
테스트 목적이므로 단일 로컬 서버에 설치해보고자 한다.
사용한 OS는 Ubuntu 20.04 arm64이며, Python 버전은 3.8이다. 또한 Apache Airflow 2.3 버전을 설치할 것이다.
로컬에서 설치
Airflow 공식 사이트의 로컬에서 Airflow 설치 문서를 따른다.
Airflow 설치에는 Python 3이 필요하고, pip를 통한 설치를 지원하고 있다.
1. (선택) python 가상 환경 생성
기존 python 환경에 영향이 없도록 별도의 가상 환경을 생성하여 사용할 것이다. 이 부분은 선택 사항이다.
# 가상 환경 생성
python3 -m venv ./airflow
# 활성화
source airflow/bin/activate
Python 가상 환경 virtualenv/venv 참고
2022.07.21 - [python3] venv 사용
2021.06.25 - [CentOS 7] virtualenv 설치 및 사용
2. Airflow 홈 디렉터리 설정
mkdir ~/airflow
export AIRFLOW_HOME=~/airflow
3. Airflow 버전, Python 버전 설정
AIRFLOW_VERSION=2.3.2
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
4. Airflow 설치 파일 경로 선언
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
5. Airflow 설치
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
+ ERROR: Failed building wheel for blinker 에러 발생 시
내 경우, wheel 명령어가 설치되어 있지 않아 발생한 것 같다. pip로 설치하여 해결했다.
pip install wheel
6. 설치 확인
airflow version
Airflow 실행
airflow standalone 명령으로 airflow를 초기화하고 실행할 수 있다.
standalone 명령을 실행하면 airflow 실행에 필요한 데이터베이스를 초기화하고 사용자를 생성한 뒤, 모든 컴포넌트가 시작된다.
Airflow는 기본적으로 8080 포트를 사용하므로, IP:8080 주소를 웹 브라우저에 입력하여 접근할 수 있다.
airflow standalone
로그인 시 필요한 정보는 터미널에 출력되어 있다.
사용자 이름은 admin 고정이며, 비밀번호는 랜덤으로 생성된다. 로그인하면 DAG 예시들을 볼 수 있다.
standalone 명령 대신 각 요소를 수동으로 실행시키고 싶다면 아래와 같이 실행하면 된다.
# DB 초기화
airflow db init
# 사용자 생성
airflow users create \
--username admin \
--firstname Peter \
--lastname Parker \
--role Admin \
--email spiderman@superhero.org \
--password PASSWD
# 웹 서버 시작
airflow webserver --port 8080
# 스케쥴러 시작
airflow scheduler
웹 서버와 스케쥴러를 백그라운드로 실행할 때는 -D 옵션을 추가하여 실행한다.
참고 문서
https://airflow.apache.org/docs/apache-airflow/stable/start/local.html