IT 삽질기

Airflow란? 본문

BigData/Airflow

Airflow란?

화이팅빌런 2020. 12. 1. 23:24

Airflow란?

Airlfow는 Airbnb에서 개발한 워크플로우 스케쥴링, 모니터링 도구로 현재는 Apache 프로젝트가 되었다.

Airflow는 DAG(Directed Acyclic Graph)라는 개념으로 동작하는데 python으로 DAG를 작성하고 순서를 정의할 수 있다

현재도 활발한 개발이 이루어지고 있으며 1.10.0 버전이 2018.8.9 배포된 이후 현재 2020.12.1일 현재를 기준으로 1.10.13버전까지 배포되었으며 2.0대의 버전도 꾸준히 개발되고 있다

 

Airflow 공식 github링크는 아래와 같다

github.com/apache/airflow

 

빅데이터를 활용하는 많은 곳에서 활용하는 도구로 비슷한 도구에는 oozie가 있으며, oozie와의 비교는 추후에 포스팅할 예정

Airflow의 특성

  • Dynamic : Airflow pipeline(동작순서, 방식)을 python을 이용해 구성하기 때문에 동적인 구성이 가능
  • Extensible : python을 이용해 Operator, executor을 사용해 사용자 환경에 맞게 확장 사용 가능
  • Elegant : 간결하고 명시적이며 jinja template를 이용해 parameter를 이용해 데이터를 전달하고 파이프라인을 생성하는 것이 가능
  • Scalable : 분산구조와 메세지큐를 이용해 scale out와 워커간 협업을 지원

Airflow Architecture

 

https://airflow.apache.org/docs/apache-airflow/stable/start.html#basic-airflow-architecture

 

Architecture에서 보는 것과 같이 Airflow는 Scheduler, Webserver, Worker, MetaDB로 구성된다.

- WebServer : DAG, user, connection, xcom, variable관리를 할 수 있는 UI 제공

- Scheduler : 모든 작업과 DAG를 관리하고 실행시키는 역할을 하며, PostgreSQL 9.6, MySQL 8 이상의 버전에서 HA기능까지 제공

- Executor : Worker의 동작방식에 대한 정의를 하는 부분으로 Local, Sequential, Celery 등 다양한 Executor방식을 제공

- MetaDB : 실행중인 데이터 파이프 라인에 대한 메타 데이터를 저장

Airflow UI

Airflow WebServer에서는 다양한 기능을 제공하지만 여기서는 일단 DAGs를 볼 수 있는 UI만 확인해보자

https://airflow.apache.org/docs/apache-airflow/stable/ui.html

 

Airflow DAGs를 볼 수 있는 화면으로 각각 DAG에 대한 실행, 삭제, 실행 log등의 기록들을 살펴볼 수 있다

 

 

참고링크

airflow.apache.org/docs/apache-airflow/stable

bcho.tistory.com/1184

berrrrr.github.io/programming/2020/01/12/what-is-apache-airflow/

manningbooks.medium.com/an-overview-of-apache-airflow-architecture-9b6f167f2320

'BigData > Airflow' 카테고리의 다른 글

Airflow 2.0 설치하기(3)  (0) 2021.03.21
Airflow 2.0 설치하기(2)  (0) 2021.01.29
Airflow 2.0 설치하기(1)  (0) 2021.01.27
Ambari-Airflow 연동하기  (0) 2020.12.22
Airflow 용어 및 기본 개념  (0) 2020.12.03
Comments