[데이터 플랫폼 운영 / 개발] - Local Executor Airflow 구성하기

Chan hae OH·2024년 4월 3일

1. 시작글


안녕하세요.

데이터 엔지니어링 & 운영 업무를 하는 중 알게 된 지식이나 의문점들을 시리즈 형식으로 계속해서 작성해나가며

새로 알게 된 점이나 잘 못 알고 있었던 점을 더욱 기억에 남기기 위해 글을 꾸준히 작성 할려고 합니다.

Airflow 의 경우 공식 문서와 구글링을 하여 작성하고 있습니다.

반드시 글을 읽어 주실 때 잘 못 말하고 있는 부분은 정정 요청 드립니다.

저의 지식에 큰 도움이 됩니다. :)



1. 계정 설정


groupadd --gid 6000 postgres
adduser --create-home --shell /bin/bash --gid 6000 --uid 6000 postgres
passwd postgres

groupadd --gid 7000 airflow
adduser --create-home --shell /bin/bash --gid 7000 --uid 7000 airflow
passwd postgres



2. Metadata DB 설치 (Postgres)


참고 : PostgreSQL 구성



3. airflow 설치


참고 : Pypi.org 에서 설치

pip install apache-airflow



3. linux 계정 시간 맞추기


date
ls -al /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime



4. DB 설정


https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html#setting-up-a-postgresql-database

CREATE DATABASE airflow_db;
CREATE USER airflow_user WITH PASSWORD 'airflow_pass';
GRANT ALL PRIVILEGES ON DATABASE airflow_db TO airflow_user;
-- PostgreSQL 15 requires additional privileges:
\c airflow_db;
GRANT ALL ON SCHEMA public TO airflow_user;



5. config 생성을 위해 기동


airflow webserver --port 8080
airflow scheduler



6. 기동 종료


ps -ef | grep airflow

kill -9 pid



7. airflow 계정 만들기


airflow users create \
--username admin \
--password admin \
--firstname first-name \
--lastname last-name \
--role Admin \
--email spiderman@superhero.org



8. airflow.cfg 설정


vi /home/{user}/airflow/airflow.cfg

dags_folder = /{path}/dags
default_timezone = utc
executor = LocalExecutor
load_examples = False
plugins_folder = /{path}/plugins
sql_alchemy_conn = postgresql+psycopg2://{user}:{password}@172.16.1.20/airflow
sql_engine_encoding = utf-8
base_log_folder = /home/{user}/airflow/logs
dag_processor_manager_log_location = /home/{user}/airflow/logs/dag_processor_manager/dag_processor_manager.log
config_file = /home/{user}/airflow/webserver_config.py
child_process_log_directory = /home/{user}/airflow/logs/scheduler



9. Airflow 실행 중단 sh 만들기


# 스케줄러 실행기

vi airflow-scheduler-start.sh

#!/bin/bash
airflow scheduler -D
exit 0
# 스케줄러 종료기
vi airflow-scheduler-stop.sh

#!/bin/bash
PID=$(cat /home/{user}/airflow/airflow-scheduler.pid)
kill -2 $PID
exit 0
# 웹서버 실행기

vi airflow-webserver-start.sh

#!/bin/bash
airflow webserver -p 8080 -H 0.0.0.0 -D
exit 0
# 웹서버 종료기

vi airflow-webserver-stop.sh

#!/bin/bash
PID=$(cat /etl/airflow/airflow-webserver.pid)
kill -2 $PID
exit 0



profile
Data Engineer

0개의 댓글