-
Airflow(celeryexecutor - docker-compose)데이터엔지니어링/Airflow 2023. 5. 13. 22:56
이번엔 Docker를 이용한 Celeryexecutor 배포를 구현
아나콘다를 이용했다.
우선, 도커를 설치해야한다.
sudo apt-get update
위와 같은 명령어를 입력해 업그레이드 시키기
sudo apt-get docker
위 명령어를 이용해 도커를 설치해준다.
sudo apt-get install \ ca-certificates \ curl \ gnupg
레포지토리 접근에 필요한 패키지들을 설치해준다.
sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
Docker's gpg 키 추가하기 위해 위의 순서로 진행한다.
echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
위 코드로 Docker 레포지토리 세팅한다.
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker engine을 apt-get을 이용하여 설치하기위해 위 순서로 코드를 입력한다.
sudo docker run hello-world
docker run으로 hello-world를 치면, Hello from Docker! 가 나온다.
이는, Docker engine이 잘 설치된 것!!
이제, Docker-compose를 설치
sudo apt install docker-compose
docker-compose를 설치한다.
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.0/docker-compose.yaml'
위의 명령어를 이용해 docker-compose.yaml 파일을 받아온다.
그럼 docker-compose.yaml이 설치된걸 볼 수 있다.
mkdir ./dags ./logs ./data ./plugins echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env
airflow에서 사용할 디렉토리 설정한다. 이 디렉토리는 컨테이너의 볼륨으로 마운트가 되며, DAG를 개발하고 컨테이너에 넣어줄 필요없이, dags 폴더에 DAG 파일을 넣어주기만 하면 된다!
docker compose up airflow-init
위의 명령어로 공통환경을 잡아주기!
sudo docker-compose up -d
위의 명령어를 입력하면 docker-compose.yaml 파일에 있는 설정으로 다음과 같이 이미지가 만들어 지고, 배포가 되는 것을 볼 수 있다!
야호야호 성공! 다만 보게되면, flower가 존재하지 않는 것을 볼 수 있는데, 아래의 명령어를 입력하면 된다.
sudo docker compose --profile flower up 아래는 백그라운드에 실행시! sudo docker compose --profile flower up -d
good
그렇다면 3개의 worker를 쓰고싶을때?? 아래의 명령어를 입력하면 된다.
sudo docker-compose up --scale airflow-worker=3 아래는 백그라운드에 실행시! sudo docker-compose up -d --scale airflow-worker=3
잘 구동이 되어 있는 걸 볼 수 있다!
CeleryExecutor로 worker가 3개가 된 것을 볼 수있다.!
'데이터엔지니어링 > Airflow' 카테고리의 다른 글
GCP VM으로 Airflow 구축하기 (0) 2023.06.04 Airflow-(celeryexecutor) (0) 2023.05.07 Airflow 간단 개념 (0) 2023.05.03