2025/04 13

airflow 설정

gpadmin 사용자로 airflow.service 실행 -> airflow standalone airflow info | grep AIRFLOW_HOME-> /opt/airflow /opt/airflow/airflow.cfg-> root 계정이 만든 airflow.cfg-> [core] dags_folder = /opt/airflow/dags airflow info 는 현재 로그인한 사용자의 AIRFLOW_HOME 기준 airflow.cfg 을 따른다고함.-> /home/gpadmin/airflow/airflow.cfg dagParseProcessor 는 /root/airflow/logs/dag_processor_manager 에 접근 systemd 서비스가 생성, scheduler 가 포크한 하..

Echo system/Airflow 2025.04.20

Airflow configuration

section[core]전체 Airflow 시스템의 핵심 설정들 (home, dags_folder, executor, etc.)[webserver]Airflow 웹 UI와 관련된 설정 (포트, 인증 방식, expose_config 등)[scheduler]DAG 스케줄링 주기, DAG 파서 프로세서 수, heartbeat 주기 등[logging]로그 저장 경로, 로그 포맷, log level 등 설정[metrics]Prometheus 등 외부 모니터링 시스템 연동 설정[email]이메일 알림을 위한 SMTP 설정[smtp]이메일 송신 서버 설정 (이메일 기능 쓸 때 연동됨)[database]metadata DB 연결, pool, engine 설정[celery]executor가 Celery일 때 관련 설정 ..

Echo system/Airflow 2025.04.20

dag parsing & write_dag

1. Dag 파일 수정(.py)2. Scheduler 가 감지 (mtime 기준)3. queue 에 등록 (DagFileProcessorManager)4. subprocess 가 파싱 시도 (dagbag.process_file)5. DAG 객체 생성 (ex) dag=DAG(...))6. DAG 객체를 DB 에 저장하기 위해 serializedDagModel.write_dag(dag) 호출7. DAG 내부 구조를 JSON 으로 serialized8. serialized_dag 테이블에 insert/update9. web ui 에서 테이블 읽어와서 업데이트 Dag 파싱Airflow 가 .py 파일 읽고 실행 후 DAG 객체를 메모리에 올림-> dagbag.process_File() 가 처리 (메타 정보로 정..

Echo system/Airflow 2025.04.18