Airflow 조그맣게 시작하기 - Quick start

햄도·2021년 2월 11일
3

Airflow slowstart

목록 보기
2/6

튜토리얼

(airflow version 2 기준으로 작성)

  1. workspace 환경변수 설정
    export AIRFLOW_HOME=~/airflow
기본적으로 dag 디렉토리, cfg 파일, 로그 폴더 등이 airflow_home에 위치하도록 설정되어있다.  
  1. 설치
    pip install apache-airflow
다른 아파치 프로젝트와 사용하기 위해 필요한 패키지들을 한 번에 설치할수도 있다. ([참고](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html))
  1. db init
    airflow db init
  1. admin 추가하기
    airflow users create \
    		--role Admin \
    		--username x \
    		--firstname y \
    		--lastname z \
    		--email m \
    		--password n
  1. webserver 시작
    airflow webserver --port 8080 >> ${AIRFLOW_HOME}/logs/webserver.log &
webserver의 로그가 어디에 저장되는지 찾기 힘들어서 webserver.log에 저장하도록 했다.
  1. scheduler 시작
    airflow scheduler >> ${AIRFLOW_HOME}/logs/scheduler.log &
  1. test dag 생성
    import pendulum
    from datetime import datetime
    from airflow.models import DAG
    from airflow.operators.bash import BashOperator
    from airflow.operators.dummy import DummyOperator

    KST = pendulum.timezone("Asia/Seoul")
    args = {'owner': 'hamdoe'}

    dag  = DAG(dag_id='my_dag',
               default_args=args,
               start_date=datetime(2021, 2, 8, tzinfo=KST),
               schedule_interval='0 0 * * *')

    t0 = DummyOperator(task_id='dummy_task',
                       dag=dag)

    t1 = BashOperator(task_id='hello',
                      bash_command='echo hello',
                      dag=dag)
    t0 >> t1
  1. dag 추가된것 확인
    airflow dags list
위 명령어로 각 dag의 filepath와 owner, paused 여부를 알 수 있다.
  1. dag 수행해보기

아까 실행한 웹서버에 들어가 dag를 누르면 위와 같은 화면이 나오는데, 왼쪽 상단의 토글을 눌러 dag를 unpause한 후 오른쪽 상단의 화살표를 누르면 수행이 된다. 

수행기록을 남기지 않고 테스트만 하고 싶다면 아래 명령어를 실행하면 20210209를 execution date로 하여 수행하게 된다. 
    airflow dags test my_dag 20210209
airflow의 timezone과 execution date에 대한 설명은 다음 포스팅으로 정리 예정이다.

참고

profile
developer hamdoe

0개의 댓글