반응형
velog 마이그레이션
원글 : [Airflow] 2. Airflow 설치하기 (docker)
0. 인스턴스 정보
OS : Ubuntu-Jammy-22.04-amd64-server
인스턴스 유형 : t2.xlarge
1. Docker 설치
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
반응형
'Data > Data Engineering' 카테고리의 다른 글
[Airflow] 6-1. TaskGroup으로 Task 그룹화하기 (0) | 2024.03.06 |
---|---|
[Airflow] 5-3. 데이터 파이프라인 구성하기 : Executor (2) | 2024.03.06 |
[Airflow] 2. Airflow 구성 자세히 살펴보기 (0) | 2024.03.05 |
[Airflow] 1. Apache Airflow란? (0) | 2024.03.05 |
[Airflow] 데몬으로 실행 설정 오류 : The unit airflow-webserver.service has entered the 'failed' state with result 'resources' (0) | 2023.04.23 |