내가 보려고 만든 블로그

Docker를 통해 Airflow local executor 설치해보기 본문

Data Engineering/Airflow

Docker를 통해 Airflow local executor 설치해보기

정의김 2021. 7. 25. 14:39

우선 가장 먼저 Airflow 를 설치해줄 리눅스 서버 한대가 필요하겠다.

이 글에서는 AWS를 통해 Ubuntu 20.0.4 서버를 만들어주었다.

우선 다음과 같이 package update를 해주고 재부팅을 해준다.

sudo apt update
sudo apt upgrade -y
sudo reboot

다음으로 Airflow를 설치하기 위해 필요한 도커를 다운로드 해준다.

다음의 커맨드를 사용하면 리눅스의 종류에 맞춰 알맞은 도커를 설치해준다.

 

sudo wget -qO- http://get.docker.com/ | sh

다음으로 여러개의 컨테이너를 관리하기 용이한 docker-compose도 설치를 해준다.

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

airlfow-local이라는 디렉토리르 만들어준후 디렉토리 안에 Airflow를 설치해주기 위해 필요한 docker-compose.yaml 파일을 다운받는다.

mkdir airflow-local
wget https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml

docker-compose.yaml 안에 들어가면 다음과 같은 설정들을 볼 수 있다.

cat docker-compose.yaml

 

Executor로는 Celery Executor가 Default로 설정되있는 것을 확인할 수 있다.

우리는 단일 인스턴스에서 Local Executor를 통해 Airflow를 설치할 것이므로 executor를 포함하여 docker-compose.yaml에서 몇군데 수정을 해주어야한다. 

 

우선 다음과 같이 LocalExecutor로 바꿔주고  Celery Executor를 사용하지 않으므로 주석처리를 해준다.

 

Local Executor를 사용하므로 사용하지않는 Redis에도 주석처리를 해준다.

Worker 또한 필요가 없다.

Depends 에서 reids 까지 제거해주면 완료

이제 다음 명령어로 설치를 해주면 된다.

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

docker-compose.yaml 을 참고하여 컨테이너를 생성하고 -d , detach mode로 실행을 해준다.

잘 설치되었다면 docker-ps를 통해 컨테이너가 동작하고 있는 것을 확인할 수있다.