Airflow

Airflow: 설치하기

vcxz 2023. 6. 26. 12:19

 

Apache Airflow는 워크플로 플랫폼으로, 주로 데이터 파이프라인에서 사용합니다.

Github Actions와 비슷하지만 Github상에서 동작하는 Actions와 달리, Airflow는 컴퓨터에서 직접 실행해야 합니다.

따라서 설치도 직접 진행해야 합니다. WSL Ubuntu에서 설치를 해보도록 하겠습니다.

(기본적으로 Airflow Quick Start 문서를 따릅니다.)

 

 

설치

Airflow는 파이썬 기반 프레임워크입니다. 따라서 설치할 환경에 파이썬이 있어야 합니다. 아직 파이썬 3.11은 지원하지 않습니다. pip으로 설치하는 것이 원칙입니다.

 

OS에서 사용자 생성

Airflow는 홈 디렉토리를 필요로 하므로, 디렉토리를 정해야 합니다.

'airflow'라는 사용자를 만들어 홈 디렉토리를 생성하고 해당 사용자로 Airflow를 설치하도록 하겠습니다.

# 사용자를 생성하기 위하여 root 계정으로 로그인
su root

# 사용자 'airflow' 생성
adduser airflow

# airflow 계정으로 로그인
su airflow

useradd도 있지만 adduser를 사용하면 한 번에 비밀번호, 그룹, 홈 디렉토리를 생성할 수 있어 편합니다.

 

 

변수 저장 및 설치

각자 환경에 맞는 Airflow를 설치하도록 변수를 저장하고 이를 사용해 Airflow를 설치합니다.

# Airflow 설정 파일 등이 저장될 Airflow의 홈 디렉토리 명시
export AIRFLOW_HOME=~/airflow

# 설치할 Airflow 버전
AIRFLOW_VERSION=2.6.2

# Airflow가 기반할 파이썬 버전
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"

# 위 사항에 해당하는 Airflow URL
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

# Airflow 설치
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

PYTHON_VERSION 변수는 파이썬 버전을 출력하는 명령어에서 "3.10"처럼 버전만 따와 생성하는 것이므로, 버전을 안다면 저렇게 할 필요 없이 바로 기재해도 됩니다.

 

root 계정이 아닌 사용자 계정으로 sudo를 사용하지 않고 설치할 경우, Airflow 실행 파일은 '~/.local/bin'에 저장됩니다.

반면 root 계정에서나 sudo를 사용하여 설치할 경우, Airflow 실행 파일은 '/usr/local/bin'에 저장됩니다.

전자는 일반적으로 환경 변수 PATH에 없으므로, 어디에서나 airflow 명령어를 사용하려면 PATH에 포함해야 합니다. 이 내용은 pip에서도 경고로 출력합니다.

 

Airflow 업그레이드를 하고 싶은 경우에도 같은 방법으로 설치하면 됩니다. 다만 설치 후 메타데이터 데이터베이스를 마이그레이션해야 되는데, 마이그레이션 중에 오류가 나면 데이터가 손실될 수 있으므로 백업을 해 놓는 게 좋습니다.

# 메타데이터 데이터베이스 마이그레이션
airflow db migrate

 

 

실행

Airflow를 실행해봅시다.

airflow standalone

standalone은 별다른 과정 없이 바로 Airflow를 띄웁니다. Airflow 사용자와 비밀번호도 임시로 생성하여 출력합니다. 실제 업무보다는 개발할 때 쓰라고 만든 기능이라고 합니다.

standalone을 처음 사용하면 AIRFLOW_HOME 디렉토리와 설정 파일인 airflow.cfg를 생성합니다.

 

'http://localhost:8080'에 접속하면 Airflow UI를 사용할 수 있습니다. 기본적으로 많은 예시 DAG들을 볼 수 있습니다.

 

터미널에서 Ctrl + C를 입력해 Airflow를 종료할 수 있습니다.