코딜기
[Airflow] Airflow 기본 아키텍처 본문
반응형
Airflow 기본 아키텍처
Scheduler
- 스케줄 된 워크 플로우를 트리거하고, Executor에게 task를 실행하도록 요청하는 역할을 합니다.
- 기본적으로 1분에 한 번씩 모든 DAG들의 정보를 업데이트하고, 상태정보를 확인합니다.
- Scheduler는 모든 task와 DAG를 모니터링하고 각각의 task들을 조건에 맞게 트리거합니다.
Executor
- task의 실행을 관리합니다.
- 실제 task의 실행은 Scheduler 내부에서 수행할 수도 있고, 외부의 worker에게 실행을 맡길 수도 있습니다.
- Executor의 종류
- Local Executor : 로컬에서 프로세스를 실행시켜 task를 실행하는 방식
- Sequential Executor : Local Executor와 비슷하지만 로컬에서 한 번에 하나씩만 동작하는 방식
- Celery Executor : Celery를 이용해서 작업을 worker에게 분배하고, 작업 결과를 관리하는 방식
- Celery Kubernetes Executor : K8S 환경에서 Celery를 이용하는 아키텍처 방식
- Dask Executor : Dask를 이용해서 task의 실행과 결과를 관리하는 방식
- Kubernetes Executor : K8S 환경에서 task를 pod에 스케줄링하는 방식
- Local Kubernetes Executor : task를 Local Executor 또는 Kubernetes Executor로 동작시키는 방식
- 보통 k8s 환경에서는 Kubernetes Exceutor를 사용하고, 그렇지 않을 경우에는 Celery Executor를 많이 사용합니다
Websever
- 유저가 DAG나 task의 상태를 관리하는 웹 인터페이스 도구입니다.
- 여러 가지 공통 설정을 관리하거나 매뉴얼 한 작업의 수정, 디버깅까지 가능합니다.
DAG Directory
- 워크 플로우가 정의된 DAG의 python 파일은 Scheduler와 Executor가 읽을 수 있는 dags 경로에 있어야 합니다.
Metadata Database
- 작업의 정의, 상태, 실행 정보, 결과정보, 로그, audit 등을 관리하는 데이터베이스입니다.
- Scheduler, Executor, Webserver 모두 metadata database에 접근이 가능합니다.
- 사용 가능한 Database 종류와 버전
- PostgreSQL: 11, 12, 13, 14, 15
- MySQL: 5.7, 8
- MsSQL: 2017, 2019
- SQLite: 3.15.0+
반응형
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] airflow.cfg 개념과 각 섹션들의 기능 (0) | 2024.05.14 |
---|---|
[Airflow] EC2 가상 환경에 Airflow 패키지 설치하기 (0) | 2024.05.14 |
[Airflow] Celery Executor (0) | 2024.05.08 |
[Airflow] Airflow Library 설치 (0) | 2024.03.15 |
[Airflow] 로컬에서 실행된 Docker로 Airflow 띄우기 (0) | 2024.03.15 |
Comments