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