본문 바로가기
BigData/Apache Airflow

[Airflow] docker-compose.yml로 airflow 설치하기

by 스파이디웹 2023. 1. 7.
728x90

이번 포스트에는 docker-compose.yml를 이용하여 간단하게 airflow를 설치해보겠습니다.

 

airflow 개념과 용어에 대해 공부하고 싶으신 분은 아래의 링크를 참조해주세요.

https://spidyweb.tistory.com/295

 

[BigData] Apache Airflow 설치 및 실습 하기 series (1) Airflow란? DAG란?

안녕하세요 이번 포스트에는 Airflow의 개념에 대해서 알아보고 어떤 역할을 하는지, 그리고 핵심인 DAG파일에 대해서 알아보겠습니다. 1. Apahce Airflow란? 에어비앤비에서 python기반으로 개발한 워크

spidyweb.tistory.com


1. docker 설치

https://spidyweb.tistory.com/277

 

[Docker] Docker란? ubuntu 18.04 에서 도커 설치하기, centos-7 에서 도커 설치하기

이번 포스트에는 docker에 대해 설명하고, ubuntu와 centos에 설치해보도록 하겠습니다. 1. Docker란 Docker는 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로

spidyweb.tistory.com


2. docker compose 설치

1) 설치

$ apt-get install docker-compose

2) docker-compose 설치 확인

$ docker-compose -v

3) airflow 공식 docker-compose.yaml 다운로드

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

 

4) airflow에서 사용할 디렉터리를 미리 설정

여기서 생성하는 디렉터리는 container의 볼륨으로 마운트 됩니다.

마운트가 되면 container에서 동작하는 airflow task의 로그를 호스트 머신에서 생성한 logs 디렉터리에서 확인하거나, 새로운 DAG을 개발했다면 container에 넣기 위해 docker cp를 할 필요 없이 그냥 dags 디렉터리에 위치 시킵니다.

$ mkdir ./dags ./logs ./plugins
$ echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

 

5) docker-compose 명령어를 통해 airflow 초기화(공통환경 잡기)

$ docker-compose up airflow-init

 

*로컬에서 5432(postgres), 6379(redis), 8080(webserver) 포트가 충돌 나지 않도록 미리미리 종료해야 합니다

 

6) airflow 초기화 결과 확인

설치 끝난 직후

 

sudo docker ps

7) airflow 서비스 올리기

-d 옵션(detached모드)을 사용

$ docker-compose up -d

  • airflow-scheduler
    • The scheduler monitors all tasks and DAGs, then triggers the task instances once their dependencies are complete.
    • 스케줄러는 모든 작업과 DAG를 모니터링 한 다음 종속성이 완료되면 작업 인스턴스를 트리거
  • airflow-webserver 
    • The webserver available at http://localhost:8080.
    • airflow 웹서버입니다. localhost:8080으로 접속해서 사용 가능
  • airflow-worker
    • The worker that executes the tasks given by the scheduler.
    • 스케줄러가 제공한 작업을 실행하는 작업자
  • airflow-init
    • The initialization service.
    • 초기화 서비스
  • flower
    • The flower app for monitoring the environment. It is available at http://localhost:5555.
    • 환경 모니터링을 위한 flower 애플리케이션입니다. localhost:5555에서 사용할 수 있음
  • postgres
    • 데이터베이스
  • redis
    • The redis - broker that forwards messages from scheduler to worker.
    • 스케줄러에서 작업자로 메시지를 전달하는 브로커

8) airflow webserver 확인

virtual box 의 포트포워딩 및 EC2의 Outbound 규칙 설정

가상 서버가 아닌 local 컴퓨터에서 localhost:8080 or (가상서버 ip)입력

airflow/airflow로 로그인

 

이것으로 docker-compose를 이용한 airflow 설치는 완료되었습니다.

 

참조:

https://jybaek.tistory.com/922

728x90

댓글