일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HIVE
- Kafka
- Lambda architecture
- Windows
- java
- Scala
- HBase
- HDP
- jupyter
- NoSQL
- Namenode
- Service
- python
- Example DAG
- execution_date
- hadoop
- MapReduce
- slack
- airflow
- ambari
- docker
- re
- HDFS
- yarn
- 람다 아키텍처
- LDAP
- 빅데이터
- 정규표현식
- slack app
- SlackWebhookOperator
- Today
- Total
IT 삽질기
Airflow란? 본문
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링크는 아래와 같다
빅데이터를 활용하는 많은 곳에서 활용하는 도구로 비슷한 도구에는 oozie가 있으며, oozie와의 비교는 추후에 포스팅할 예정
Airflow의 특성
- Dynamic : Airflow pipeline(동작순서, 방식)을 python을 이용해 구성하기 때문에 동적인 구성이 가능
- Extensible : python을 이용해 Operator, executor을 사용해 사용자 환경에 맞게 확장 사용 가능
- Elegant : 간결하고 명시적이며 jinja template를 이용해 parameter를 이용해 데이터를 전달하고 파이프라인을 생성하는 것이 가능
- Scalable : 분산구조와 메세지큐를 이용해 scale out와 워커간 협업을 지원
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만 확인해보자
Airflow DAGs를 볼 수 있는 화면으로 각각 DAG에 대한 실행, 삭제, 실행 log등의 기록들을 살펴볼 수 있다
참고링크
airflow.apache.org/docs/apache-airflow/stable
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 |