Apache Airflow

[Apache Airflow] 설치 / 실행 (버전 1.10)

비번변경 2022. 7. 23. 16:45

Apache Airflow 설치

2022.07.22 - [Apache Airflow] 설치/실행 (2. 3 버전) 에서 2.3 버전 설치 / 실행 방법을 정리했는데, 생각해보니 1 버전이 필요할 것 같다. 따라서 1버전 설치 / 실행 방법도 정리한다. 방법 자체가 크게 달라지진 않는다.

테스트 목적이므로 마찬가지로 단일 로컬 서버에 설치해보고자 한다.

사용한 OS는 Ubuntu 20.04 arm64이며, Python 버전은 3.8이다. 또한 Apache Airflow 1.10.15 버전을 설치할 것이다.

 

 

로컬에서 설치

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

Airflow 홈 디렉터리 설정

 

3. Airflow 버전, Python 버전 설정

AIRFLOW_VERSION=1.10.15
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"

Airflow 버전, Python 버전 설정

 

4. Airflow 설치 파일 경로 선언

CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

Airflow 설치 파일 경로 선언

 

5. Airflow 설치

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

 

+ ERROR: Failed building wheel for blinker 에러 발생 시

ERROR: Failed building wheel for blinker 에러

내 경우, wheel 명령어가 설치되어 있지 않아 발생한 것 같다. pip로 설치하여 해결했다.

pip install wheel

 

6. 설치 확인

airflow version

 

airflow version

 

 

Airflow 실행

airflow 2 버전과 다르게 standalone 명령이 없다. 따라서 아래와 같은 절차를 따라야 한다.

# 데이터베이스 초기화
airflow initdb

# 웹 서버 시작
airflow webserver --port 8081 -D
# --port : 포트 지정
# -D : 백그라운드로 실행

# 스케쥴러 시작
airflow scheduler -D

웹 서버/스케쥴러 실행

 

웹 서버가 8081 포트를 사용하도록 설정했으므로, IP:8081 주소를 웹 브라우저에 입력하여 접근할 수 있다. 2버전과 다르게 로그인을 요구하지 않는다.

Airflow 1 접속

 

 

참고 문서

https://airflow.apache.org/docs/apache-airflow/1.10.15/start.html

https://stackoverflow.com/questions/53204916/what-is-the-meaning-of-failed-building-wheel-for-x-in-pip-install

Airflow 간단하게 설치하기

https://velog.io/@jjongbumeee/Airflow3

728x90