BigData/Airflow

[airflow] 설치 및 설정 (Postgresql 연동)

윤팍 2023. 2. 23. 17:02

Airflow 설치

Airflow 는 python 의 pip로 간단하게 설치가 가능하다.

#AIRFLOW_HOME 을 추가하면 해당경로에 설치가 된다.
export AIRFLOW_HOME=~/airflow

$ python -m pip install apache-airflow

 

설정

1) 유저 계정 생성

# 계정 생성 명령어
$ airflow users create \
> --usernmae admin \
> --firstnmae test \
> --lastnmae youn \
> --role Admin \
> --password admin1
> --email youn@tistory.com

2) DB 초기화

Airflow는 기본적으로 SQLite 를 사용한다. 초기화를 통해 airflow 폴더에 .db 파일이 생성되는 것을 확인 할 수 있다.

$ airflow db init

3) Webserver 실행

# demon으로 실행한다.
$ airflow webserver --port 8080 -D

명령어를 실행하면 http://localhost:8080 으로 들어가면 확인할 수 있다.

로그인 하기 위해서는 아까 만들어둔 계정으로 로그인하면 된다.

 

4) Scheduler 실행

$ airflow scheduler

 

PostgreSQL DB 생성 및 연동

1) 왜 DB를 변경 할려고 하는지.

기본적으로 airflow 는 SQLite 되어있다. 변경할려고 하는 이유는 SequentialExecutor 가 아닌 다른 Executor를 사용하기 위함이다.

기본적으로 Airflow 는 병렬처리를 제공하지 않는 SequentialExecutor  를 사용한다. DAG에서 같은 시간으로 스케줄러를 실행해 놓아도 병렬적으로 실행되지 않고 하나가 끝나면 다른 하나가 시작되는 순차적으로 처리하게 된다.

2) DB 생성 및 유저 생성

# psql 로 postgresql 로 접속하여 명령어를 사용한다.

CREATE USER airflow;
ALTER USER airflow WITH PASSWORD 'pass1';

CREATE DATABASE airflowdb;

GRANT ALL PRIVILEGES ON DATABASE airflowdb TO airflow;
ALTER DATABASE airflowdb OWNER TO airflow;

3) airflow.cfg 파일 수정

기본적으로 sqlite를 사용하고 있는데 해당 부분을 수정해야한다.

# 수정 전
sql_alchemy_conn = sqlite:////home/younpark/airflow/airflow.db

# 수정 후
sql_alchemy_conn = postgresql+psycopg2://airflow:pass1@localhost:5432/airflowdb

4) Airflow DB 초기화

.cfg 파일을 수정하고 데이터베이스를 초기화 해야한다.

airflow db init