개요
로컬 환경에서 Airflow를 설치해서 Airflow Web UI를 띄우는 과정까지 진행할 것입니다.Airflow는 파이썬 환경에서와 Docker Container에서 실행할 수 있는데 저는 Docker Container 환경에서 실행시키는 것을 목적으로 진행할 것입니다.
Docker Container로 진행하는 이유는 pyenv 등을 이용한 파이썬 환경 구성은 파이썬 실행 수준에서 실행 환경을 격리하지만, Docker Container는 OS 수준에서 격리된 환경을 제공하기 때문에 파이썬 패키지 뿐만이 아닌 DB Driver, GCC 컴파일러 등의 의존성을 포함하여 Docker Container를 생성할 수 있습니다.
Airflow 설치 전 세팅
* VM : CentOS 7 (Core : 2 / MEM : 6GB / Storage : 20GB)
* docker : 18.09.1
* docker-compose : 1.29.2
* Airflow : 2.3.4
Docker Container에서 Airflow 실행하기
1. Docker Install
1.1 yum-utils를 제공하는 패키지를 설치 및 Repository를 설정
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.2 Docker Engine 설치
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
1.3 특정 버전의 Docker 설치
$ sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io docker-compose-plugin
1.4 사용자가 root:docker 권한을 갖아야 실행 및 'id' 명령어를 통해 docker가 추가 되었는지 확인
$ sudo usermod -aG docker $USER
$ reboot
$ id
1.5 Docker 시작 및 상태 확인
$ sudo systemctl start docker
$ sudo systemctl status docker
1.6 Docker가 정상적으로 실행되는지 Test
$ docker run hello-world
2. Docker Compose Install
2.1 docker-compose 파일 가져오기
$ curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.2 docker-compose를 실행시키기 위해 권한 부여
$ chmod +x /usr/local/bin/docker-compose
2.3 docker-compose 버전 확인
$ docker-compose --version
3.Airflow Install 및 실행 (docker-compose로 진행)
3.1 docker-compose에 Airflow를 배포하기 위해 docker-compose.yaml 파일 가져오기
$ curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.4/docker-compose.yaml'
3.2 컨테이너의 일부 디렉토리와 마운트하여 Airflow가 컴퓨터와 컨테이너 간에 동기화
./dags | 여기에 DAG 파일을 넣을 수 있습니다. |
./logs | 작업 실행 및 Sceduler의 Log를 포함합니다. |
./plugins | 사용자 정의 Plugin을 넣을 수 있습니다. |
$ mkdir -p ./dags ./logs ./plugins
3.3 docker-compose 환경 변수 참조
$ vi .env
---
AIRFLOW_UID=50000
3.4 Database 초기화 진행
* 모든 OS에서 DB Migration을 실행하고 첫 번째 사용자 계정을 만들어야 하므로 DB 초기화 진행
$ docker-compose up airflow-init
3.5 docker-compose를 통해 Airflow의 모든 서비스 실행 (백그라운드에 실행)
$ docker-compose up -d
3.6 Airflow Web UI 화면
* Username : airflow / Password : airflow
※ 참조 사이트
https://docs.docker.com/engine/install/centos/
Install Docker Engine on CentOS
docs.docker.com
https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html
Running Airflow in Docker — Airflow Documentation
airflow.apache.org
'BigData > Airflow' 카테고리의 다른 글
[Airflow] Airflow 보안 (0) | 2022.10.27 |
---|---|
[Airflow] Task 의존성 정의 방법 (0) | 2022.09.14 |
[Airflow] Airflow UI (0) | 2022.09.08 |
[Airflow] Apache Airflow 란? (0) | 2022.09.05 |