pip 패키지 관리 툴을 이용한 설치 방법

설치 환경

  • Python 3.10.0

(1) Python 및 pip 설치

Airflow는 Python 기반이므로 Python과 pip 가 설치되어있어야 합니다.

1
2
3
4
5
6
7
8
9
# conda 설치
mkdir ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh

# 직접 설치
sudo apt update
sudo apt install -y python3 python3-pip

(2) 가상환경 생성 및 활성화

충돌 방지를 위해 가상환경에서 airflow 관련 세팅을 하는 것을 추천합니다.

1
2
3
4
5
6
7
8
# conda 사용시
conda create -n airflow python==버전
conda activate airflow

# venv 사용시
sudo apt install python3-venv
python3 -m venv airflow_env
source airflow_env/bin/activate

(3) 환경 변수 설정

Airflow의 기본 작업 디렉터리인 AIRFLOW_HOME 을 환경변수에 지정합니다.

1
export AIRFLOW_HOME=~/airflow

(4) Airflow 설치

Airflow 는 Python의 패키지이므로 pip 를 이용해 설치합니다.

1
pip install apache-airflow

(5) Airflow 초기화

Airflow 데이터베이스를 초기화 합니다.

1
airflow db init

(6) 관리자 생성

웹 UI에서 접근하기 위해 관리자 게정을 생성합니다.

1
airflow users create --username admin --firstname admin --lastname user --role Admin --email abc@abc.com

명령어 실행 후 Password 를 요구하는데, 생성하는 admin 계정에 대한 패스워드를 입력해주면 됩니다.

(7) Airflow 실행

1
2
3
4
5
# airflow 웹서버 실행 (포트 미지정시 기본 8080)
airflow webserver --port 포트번호 # 백그라운드 실행시에는 -D 옵션

# 스케줄러 실행
airflow scheduler # 백그라운드 실행시에는 -D 옵션

접속과 종료

접속

웹브라우저에서 주소창에 <서버ip 혹은 도메인>:<지정 포트> 를 입력하여 웹 UI에 접근이 가능합니다.(e.g. http://192.168.0.10:8080)

종료

(1) docker 를 사용한 경우

docker compose down 명령어로 컨테이너들을 중지시키고 제거합니다.

1
docker compose down

(2) 패키지 관리 툴로 설치, 실행한 경우

프로세스 ID를 찾아서 kill 명령어로 종료시키거나, 서비스명을 찾아 프로세스를 종료시킵니다.

1
2
pkill -f "airflow webserver"
pkill -f "airflow scheduler"

또는

1
2
3
4
5
ps aux | grep "airflow webserver"
kill <PID>

ps aux | rep "airflow scheduler"
kill <PID>

Airflow 디렉터리 살펴보기

Airflow 디렉터리 (AIRFLOW_HOME)은 아래와 같은 구조를 가지고 있습니다.

1
2
3
4
5
6
7
8
drwxr-xr-x 4 root root    4096 Jan 28 05:10 .
dr-xr-x--- 1 root root    4096 Jan 28 04:32 ..
-rw-r--r-- 1 root root       4 Jan 28 04:34 airflow-webserver.pid
-rw------- 1 root root   87122 Jan 28 04:31 airflow.cfg
-rw-r--r-- 1 root root 1232896 Jan 28 05:10 airflow.db
drwxr-xr-x 2 root root    4096 Jan 28 05:09 dags
drwxr-xr-x 4 root root    4096 Jan 28 04:34 logs
-rw-r--r-- 1 root root    4762 Jan 28 04:34 webserver_config.py

Reference

Apache Airflow 공식 doc

Comments