Gibbs Kim's playground

[Data Engineering-5] Airflow 설치 및 실행 테스트 (with postgreSQL) 본문

Tech 기록지/Data Engineering

[Data Engineering-5] Airflow 설치 및 실행 테스트 (with postgreSQL)

Lio Grande 2024. 7. 26. 16:57

Airflow 설치 및 실행에 대한 테스트 내역을 기록함

# Test Environment

## OS: Windows 11 pro
## VM: WSL2

** Airflow는 Windows에서 정상적인 실행이 불가능하다. 반드시 Linux MacOS에서 실행하자


1) Airflow 설치

$ pip install apache-airflow

## If you want to install specific version, try like below
$ pip install apache-airflow==2.9.1

 

2) Database 초기화

$ airflow db init

기본으로 설정되는 DB는 sqlite이다.

 

3) DB 변경 (Sqlite to postgreSQL)

# Move to directory of configure file
$ cd /home/test/airflow

# Open configure file through vi editor
$ sudo vi airflow.cfg

# Search connection string
$ :/sql_alchemy_conn

# Change DB value
## sql_alchemy_conn = sqlite:///home/test/airflow/airflow.db
sql_alchemy_conn = postgresql+psycopg2://{USER_ID}:{USER_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}

 

4) Airflow Webserver 사용자 생성

$ airflow users create -u test -r Admin -p test

# command & option sample
## airflow users create -u {Login_ID} -f {First_NAME} -l {Last_NAME} -r Admin -p {Password} -e {Email}

만약 DB 설정에서 psycopg2 모듈이 없다는 메시지가 발생하면 다음의 명령어를 실행하자

$ pip install psycopg2-binary

## In case, 'pip install psycopg2' deprecated at 2024-07-26

 

5) Webserver 실행

$ airflow webserver

# Default port is 8080

 

6) Webpage

만약, 2.9.3 이전 버전으로 설치하여 sample DAGs들이 계속 생성된다면, 웹서버를 종료 후, airflow.cfg 내부에 값을 수정해주자.

$sudo vi airflow.cfg
$:/load_examples

# (From) load_examples = True
# (To) load_examples = False

 

7) 특이사항 및 이슈

현재 테스트에 사용한 Airflow의 버전은 2.9.3이다.

해당 버전에서 웹서버 ID 로그아웃을 시도하면 다음과 같은 에러가 발생한다

Git issue list를 확인해본 결과 버전 이슈인듯 하며 아래 링크에서는 2.9.2 이하 버전으로 세팅해보라는 권유가 있다.

https://github.com/apache/airflow/issues/40470

또는 constraints 옵션을 사용할 것을 권장하고 있다.


참고링크

1) https://velog.io/@insutance/Airflow-Airflow-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

Airflow 간단하게 설치하기

Airflow 를 로컬에서 간단하게 설치하고 Webserver 까지 띄어보자.

velog.io

2) https://velog.io/@insutance/Airflow-DB-%EB%B3%80%EA%B2%BD-SQLite-to-PostgreSQL

 

Airflow DB 변경, SQLite to PostgreSQL

Airflow Executor를 변경하려면 DB를 변경해야 한다고 ?!

velog.io

3) https://velog.io/@mertyn88/Python-Airflow-DB-%EC%97%B0%EB%8F%99-%EB%B0%8F-%EC%98%88%EC%A0%9C

 

[Python] Airflow DB 연동 및 예제

해당 페이지에서는 이미 설치되어있는 airflow(SQLite)를 PostgreSQL을 이용한연결로 변경하고자 함이다.EMR의 설치로 인하여 HUE전용 MySQL이 설치가 되어 있어서 해당 부분에 연동을 하려고 하였는데, EM

velog.io