Airflow 시작

권대규·2021년 3월 3일
2

development

목록 보기
1/1

Airflow 개념

Airflow란?

  • Airbnb에서 개발한 workflow scheduling, monitoring platform
  • DAG 형식으로 Task들 순서를 조절
  • Python으로 코딩 가능
  • Web Interface 제공

Airflow의 특성

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

Airflow의 구조

  • Webserver: Web UI로 workflow 상태를 표시하고 각종 기능(실행, 재시작, 로그, 권한 관리)을 제공
  • Scheduler: 모든 작업과 DAG를 관리
  • Executor: Task Instance를 실행하는 주체, Worker의 동작방식을 정의
  • Worker: 실제 작업을 실행하는 주체
  • Broker: 실행가능 작업들이 들어가는 공간
  • MetaDB: 파이프라인의 Metadata들(DAG,Task 등)이 저장되어 있는 DB

Airflow 실습

로컬로 설치와 실행까지만 해보았다.
(M1 Macbook에서 진행)

Airflow 설치

export AIRFLOW_HOME=~/airflow
pip install apache-airflow

Airflow DB초기화

airflow db init

Airflow 실행

airflow webserver -p 8080

해주고 localhost:8080으로 접속해주면

과 같은 로그인 창이 나온다. 계정을 생성해주자.

airflow create_user -r role(ex:Admin) -u user_name -e email(ex:bbarroo7425@gmail.com) -f first_name -l last_name -p password

이렇게 계정을 생성해주고 로그인을 해주면

위와 같은 화면을 볼 수 있다. 현재 UI에 표시되어 있는 DAG들 같은 경우에는 기본적인 예제라고 한다.
이를 없애기 위해서는 airflow.cfg 파일의 load_examples=False로 세팅해주면 된다고 한다.

첫 포스팅 끝!

profile
글많은 개발자

0개의 댓글