728x90
이번 포스트에는 docker-compose.yml를 이용하여 간단하게 airflow를 설치해보겠습니다.
airflow 개념과 용어에 대해 공부하고 싶으신 분은 아래의 링크를 참조해주세요.
https://spidyweb.tistory.com/295
1. docker 설치
https://spidyweb.tistory.com/277
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 설치는 완료되었습니다.
참조:
728x90
댓글