안녕하세요.
데이터 엔지니어링 & 운영 업무를 하는 중 알게 된 지식이나 의문점들을 시리즈 형식으로 계속해서 작성해나가며
새로 알게 된 점이나 잘 못 알고 있었던 점을 더욱 기억에 남기기 위해 글을 꾸준히 작성 할려고 합니다.
Airflow 의 경우 공식 문서와 구글링을 하여 작성하고 있습니다.
반드시 글을 읽어 주실 때 잘 못 말하고 있는 부분은 정정 요청 드립니다.
저의 지식에 큰 도움이 됩니다. :)
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
참고 : PostgreSQL 구성
참고 : Pypi.org 에서 설치
pip install apache-airflow
date
ls -al /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
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;
airflow webserver --port 8080
airflow scheduler
ps -ef | grep airflow
kill -9 pid
airflow users create \
--username admin \
--password admin \
--firstname first-name \
--lastname last-name \
--role Admin \
--email spiderman@superhero.org
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
# 스케줄러 실행기
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