Airflow cli 시작하기

airflow components

  • 웹서버 : 서버. 서버가 실행되면 메타스토어에 전달된다.
  • 스케줄러 : 어떻게 진행할지의 계획
  • 메타스토어 : 수행기록 및 데이터 저장
  • 익스큐터 : 실제로 실행하는 역할

Prerequisites

  • 사용 tool : IntelliJ
  • airflow vm 설치

Airflow init

  • cli 접속 : IntelliJ - [Tools] - [Start SSH Session..]
    image
  • [NEW] IntelliJ에서 원격 서버에 대한 SSH 연결을 할 수 있게 하는 Beta 버전 출시(2022.04.27)
    image
    • 바닐라 모드라면 포트는 2222, ID/PW는 airflow/airflow 이다.
  • cli 접속 후 python 설치, python venv 만들기
     20  sudo apt-get install python3-venv
     21  python3 -m venv sandbox
     22  source sandbox/bin/activate
    
  • apache-airflow 설치 : 버전확인 & contraint url확인
    • constranit.txt? : python dependency와의 충돌을 막아줌
      23  pip3 install apache-airflow==2.0.0b3 --constraint https://raw.githubusercontent.com/apache/airflow/constraints-master/constraints-3.8.txt
      
  • airflow db init : 메타스토어 초기화, 필요 파일/폴더 생성
    airflow db init
    

웹서버 실행하기

  • cli에 입력 후 크롬에서 localhost:8080 (바닐라모드라면..) 이동
    airflow webserver
    
  • 웹서버의 user 만들기 : 여기선 Admin 역할의 admin을 만들어봄
    (sandbox) airflow@airflowvm:~/sandbox$ airflow users create -u admin -p admin -f dasol -l seo -r Admin -e admin@airflow.com
    

몇가지 기초 명령어들

  • start 스케줄러
    airflow scheduler
    
  • Celery 모드일경우 : start 워커
    airflow worker
    
  • DAG 리스트 조회
    airflow dags list
    
  • 태스크 조회 : 위 명령어로 확인한 dag_id를 통해 dag별 task 조회
    airflow tasks list {dag_id}
    
  • DAG trigger
    airflow dags trigger -e 2020-01-01 {dag_id}