Airflow 설치

박지은·2023년 6월 24일

Airflow Tutorial

목록 보기
2/4
post-thumbnail

본격적으로 튜토리얼을 진행하기에 앞서, 이번 포스팅에서는 Airflow 설치를 진행하려고 합니다.

Airflow 설치

튜토리얼을 위한 Airflow 설치는 Docker를 이용하여 진행합니다.

Requirement

  • Docker
  • Docker compose
  • Linux

1. Docker compose 파일 받아오기

프로젝트 폴더를 만들고 해당 폴더 내에 Docker-compose.yml을 받아와 저장합니다.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.2/docker-compose.yaml'

Docker compose 파일의 구성

  • airflow-scheduler: 모든 작업과 DAG들을 모니터링하고 실행할 Scheduler
  • airflow-webserver: 웹 인터페이스 제공할 웹 서버
  • airflow-worker: Scheduler에 의해 할당된 Task들을 실행할 Worker
  • airflow-triggerer: 지연 가능한 작업에 대해 event loop를 실행할 triggerer
  • airflow-init: 초기화 작업
  • postgres: Metadata database
  • redis: 스케줄러로부터 워커로 메시지를 전달할 broker

2. Docker compose 파일 수정하기

진행할 프로젝트에 맞게 다운로드 받은 파일에 대한 수정을 진행합니다.

1) Docker Image 바꾸기

version: '3.8'
x-airflow-common:
  &airflow-common
  image: titanic-exmaple:1.0

Docker compose파일에서 기본적으로 제공하는 이미지는 apache/airflow:2.6.2 입니다.
하지만, 해당 이미지에는 몇몇 필요한 패키지가 설치되어 있지 않으므로, 새로 Dockerfile을 작성해서 build를 진행하도록 합니다.

2) volume 추가하기

volumes:
    - ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
    - ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs
    - ${AIRFLOW_PROJ_DIR:-.}/config:/opt/airflow/config
    - ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins
    - ${AIRFLOW_PROJ_DIR:-.}/titanic:/opt/airflow/titanic
    - ${AIRFLOW_PROJ_DIR:-.}/data:/opt/airflow/data

기본적으로 dags, logs, config, plugins 폴더만 매핑되어 있으나
타이타닉 데이터를 이용해 예측을 진행하는 과정이 담긴 코드 titanic과 데이터를 저장할 data 폴더를 추가합니다.

각 폴더의 역할

  • dags: DAG 파일 저장
  • logs: Task execution과 Scheduler에서 생성된 로그들 저장
  • config: custom log parser 혹은 클러스터 정책을 설정할 airflow_local_settings.py 저장
  • plugins: custom plugin 저장
  • titanic: 데이터를 이용해 전처리 및 예측을 진행하는 코드 저장
  • data: 데이터 저장

3. Environment 설정 및 폴더 생성

Linux에서는 airflow user를 사용자의 id로 설정해 놓지 않으면 생성되는 파일들이 root 권한으로 실행되게 됩니다. 따라서 AIRFLOW_UID를 사용자의 id로 설정해 줍니다.

mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env

4. Database 초기화

Airflow 사용 전, 데이터베이스 초기화를 진행합니다.

docker compose up airflow-init

초기 아이디와 비밀번호는 둘 다 airflow 입니다.

5. Airflow 실행

docker compose up

위 명령어로 Airflow를 실행합니다.

6. Web Interface 접속

http://localhost:8080에 접속하면 airflow 사이트에 접속할 수 있습니다.

7. 종료

docker compose down --volumes --rmi all

컨테이너 삭제와 함께 볼륨 및 데이터 베이스의 데이터, 이미지 까지 모두 삭제합니다.

Reference

[1] https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html

profile
Today I learned...

0개의 댓글