본문 바로가기
Data/Data Engineering

[Airflow] 3. Airflow 설치하기 (docker)

by DenverAlmighty 2024. 3. 5.
반응형

velog 마이그레이션

원글 : [Airflow] 2. Airflow 설치하기 (docker)

0. 인스턴스 정보

OS : Ubuntu-Jammy-22.04-amd64-server
인스턴스 유형 : t2.xlarge

1. Docker 설치

Docker 설치하기
docker compose 설치

2. Airflow 컨테이너

2-1. Docker compose file 다운로드

Airflow Tutorial에 docker-compose.yaml 파일이 있는데
인터넷이 연결되어있다면 curl로 다운로드 받을 수 있다.
아니라면 파일을 생성해서 복붙한다.
Airflow Tutorial - docker

pwd
# /home/ubuntu
mkdir -p Documets/materials
cd Documets/materials
# 방법1. curl로 다운로드
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.4/docker-compose.yaml'
#방법2. 파일 생성
vi docker-compose.yaml

docker-compose.yaml

docker-compose.yaml 에는 아래 서비스 정의가되어있다.

  • airflow-scheduler : 스케줄러는 모든 작업과 DAG를 모니터링한 다음 종속성이 완료되면 작업 인스턴스를 트리거한다
  • airflow-webserver : http://localhost:8080 에서 사용 가능하다.
  • airflow-worker : 스케줄러에 의해 주어진 작업을 실행하는 작업자
  • airflow-init : airflow db 초기화 서비스.
  • postgres : 데이터베이스.
  • redis : redis 스케줄러에서 작업자에게 메시지를 전달하는 브로커.



2-2. 사용자 설정

mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env

vi .env
## 아래  내용 추가
AIRFLOW_IMAGE_NAME=apache/airflow:<2.3.0>
AIRFLOW_UID=50000



2-3. Airflow 실행

docker-compose up airflow-init
# airflow 최초 설치 시 metadatabase 초기화 명령어
airflow initdb
docker-compose ps

status가 unhealthy 인게 있다면 docker 로그를 확인한다

docker logs <materials_name_of_the_container>

orphan container 오류

docker-compose down --volumes --remove-orphans
# docker-compose.yaml 다운받은 디렉토리 제거하고 다시 다운로드, 시작



2-4. Airflow web 접속

포트는 default로 8080으로 설정되어있다.
ID/PW 는 airflow/airflow 이다.



Liux 혹은 MacOS 사용자라면 스크립트 파일을 다운받아서 쉽게 명령어를 사용할 수 있다.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.4/airflow.sh'
chmod +x airflow.sh

@ airflow.sh

PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

set -euo pipefail

export COMPOSE_FILE="${PROJECT_DIR}/docker-compose.yaml"
if [ $# -gt 0 ]; then
    exec docker-compose run --rm airflow-cli "${@}"
else
    exec docker-compose run --rm airflow-cli
fi

airflow.sh 파일을 다운/생성했다면 더 간결하게 명령어를 사용할 수 있다.

# docker-compose run airflow-worker airflow info ->
./airflow.sh info

./airflow.sh bash
./airflow.sh python



중지 및 삭제

컨테이너를 중지 및 삭제하려면 데이터베이스 데이터가 있는 볼륨을 삭제하고 이미지를 다운로드하고 다음을 실행합니다.

# 컨테이너 전체 중지 및 삭제
docker-compose down --volumes --rmi all




Apache Airflow Tutorial - Docker
https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html#customizing-the-quick-start-docker-compose

 
728x90
반응형