터칭 데이터

Airflow 설치 - 도커 사용 본문

Airflow

Airflow 설치 - 도커 사용

터칭 데이터 2023. 12. 12. 15:51

 

 

바로 앞서 살펴보았던 EC2 방식보다 더 간단합니다.

 

사실 가장 좋은 방법은 사양이 좋은 EC2 서버를 구축하고 그곳에 도커를 설치한 후 도커 컨테이너로 Airflow를 실행하는 것입니다.

 

 

 

실습

도커 엔진 설치

 

Airflow 설치

- Airflow 도커 이미지 다운로드

- Airflow 도커 컨테이너 실행

 

Airflow 웹 UI 접근

 

컴퓨터 사양이 좋다면(RAM 8GB 이상) 꼭 따라하세요.

 

 

 

 

 

Docker 설치 방법 - Windows

 

https://touchingdata.tistory.com/174

 

Superset - Docker 설치

Docker 설치 https://docs.docker.com/desktop/install/windows-install/ Install Docker Desktop on Windows Get started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update. docs.dock

touchingdata.tistory.com

 

윈도우를 위한 도커 설치 방법 게시물을 첨부합니다. 참고해주세요.

 

 

 

 

 

 

 

 

 

Docker Engine 실행과 리소스 점검

 

Docker를 실행하고 설정 메뉴에서 Resources를 선택하고 메모리 할당 부분을 체크

맥에서는 4GB가 필요
윈도우에서는 6GB가 필요 (사양이 좋다면 8GB 할당을 추천)

 

 

 

 

 

 

 

Docker 기반 Airflow 실행

 

 

Docker 기반 Airflow 설치 문서 참조

 

 


1. 먼저 터미널 프로그램을 실행하고 적당한 폴더로 이동

저는 용량이 큰 D 드라이브에 Dev_KDT라는 폴더를 생성했습니다.

 

 

 

2. airflow-setup Github repo를 클론

    - git clone https://github.com/keeyong/airflow-setup.git

D:\>cd Dev_KDT

D:\Dev_KDT>git clone https://github.com/keeyong/airflow-setup.git
Cloning into 'airflow-setup'...
remote: Enumerating objects: 65, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (63/63), done.
Receiving objects: 100% (65/65), 1.32 MiB | 11.89 MiB/s, done.

Resolving deltas: 100% (27/27), done.

 

 

 

 

3. airflow-setup 폴더로 이동하고 2.5.1 이미지 관련 yml 파일 다운로드

    - cd airflow-setup

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

 

D:\Dev_KDT>cd airflow-setup

D:\Dev_KDT\airflow-setup>

D:\Dev_KDT\airflow-setup>curl -LfO "https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10493  100 10493    0     0   148k      0 --:--:-- --:--:-- --:--:--  162k

 

YAML(yaml) 파일은 요즘 소프트웨어에서 굉장히 많이 사용하는 환경설정 파일 포맷입니다. 기존의 xml은 물론 json보다 사용하기 편리합니다. 확장자로는 yaml, yml이 사용됩니다.

 

Widnow 터미널에서 curl을 사용할 때 URL주소를 큰따옴표(")로 감싸주는 것을 권장합니다. 작은 따옴표는 URL의 일부로 인식해 에러가 발생하는 경우가 있습니다.

 

 

 

 

4. 다음 2개의 명령을 수행 (이미지 다운로드와 컨테이너 실행)

    - docker-compose -f docker-compose.yaml pull

    - docker-compose -f docker-compose.yaml up

 

D:\Dev_KDT\airflow-setup>docker-compose -f docker-compose.yaml pull
(이미지 다운로드에 몇분 소요)



D:\Dev_KDT\airflow-setup>docker-compose -f docker-compose.yaml up
(마찬가지로 실행에 몇분 소요)

 

적어도 pull 명령을 내리기 전에는 Docker Engine이 실행되고 있어야 합니다.

 

pull은 이미지들을 다운 받는 명령입니다. Docker에서 Images는 특정 프로그램과 그 프로그램에 필요한 기타 소프트웨어들을 공유 가능한 형태로 만든 파일 시스템 형태의 패키지라고 했습니다.

 

up은 Docker Container로 실행시키는 명령입니다.

지난 시간에 실행 중인 Docker 엔진위에 Docker 컨테이너가 가상환경(컴퓨터안의 컴퓨터)으로 동작 한다고 했었죠?

 

 

 

설치가 끝난 뒤의 모습입니다.

 

실행이 안되는 회색 컨테이너는 init으로 처음 airflow를 실행하는 본인의 임무를 끝냈기 때문입니다.

 

Redis, Postgres, airflow-scheduler, airflow-init-1, airflow-webserver, airflow-triggerer, airflow-worker 7개의 컨테이너를 확인할 수 있습니다.

 

아래에서 3번째 webserver를 보시면 8080:8080 포트번호를 보실 수 있습니다. 이곳으로 웹 UI로 로그인하실 수 있습니다.

 

내 컴퓨터 내부에서 실행중이기 때문에 혼자서 처음부터 끝까지 개발할 때는 모자랄게 없지만 여럿이서 공동 개발을 할 때는 EC2 3small과 같은 곳에 Airflow를 설치하는 것을 권장합니다.

 

 

 

 

5. http://localhost:8080으로 웹 UI 로그인

    - airflow:airflow 사용 (외부 노출시 ID와 PW를 변경할 것)

 

 

로그인을 하면 위와 같은 DAG들을 확인할 수 있습니다. 대부분은 Airflow가 기본적으로 설치해준 예제 파이프라인이고 dag_v1과 HelloWorld, HelloWorld_v2는 

 

D:\Dev_KDT>git clone https://github.com/keeyong/airflow-setup.git
Cloning into 'airflow-setup'...
remote: Enumerating objects: 65, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (63/63), done.
Receiving objects: 100% (65/65), 1.32 MiB | 11.89 MiB/s, done.

Resolving deltas: 100% (27/27), done.

 

우리가 위의 실습에서 git을 clone할 때 가져온 예제들입니다.

 

다음 섹션에서는 3개의 태스크로 이루어진 dag_v1으로 실습을 하겠습니다.

 

 

 

 

EC2보다 훨씬 설치가 쉽습니다. 컴퓨터 사양이 좋다면 Docker 설치를 적극 권장하고 경제적 여유가 있다면 EC2에 도커를 설치하고 Airflow를 컨테이너로 실행하는 것이 가장 좋습니다.

 

 

 

 

 

 

'Airflow' 카테고리의 다른 글

Airflow - Python Operator  (0) 2023.12.13
Airflow 기본 프로그램 실행  (0) 2023.12.12
Airflow 설치 - EC2 사용  (0) 2023.12.12
Airflow 설치 개요  (0) 2023.12.12
Airflow - 숙제 리뷰와 트랜잭션  (0) 2023.12.12