반응형
Airflow를 Docker를 이용해 설치하는 전체 과정을 정리하고 각 단계별로 설명을 붙인 내용은 다음과 같습니다.
🔧 전체 개요
Docker 컨테이너(Ubuntu 기반) 안에 Python, PostgreSQL, Airflow를 직접 설치해서 구성하는 방법입니다. 각 구성요소는 수동으로 설치되며, Airflow는 PostgreSQL DB를 백엔드로 사용합니다.
1. Docker 컨테이너 생성 및 기본 설정
docker run -itd --name=op2 ubuntu:22.04 bash
docker exec -it op2 bash
- 설명: Ubuntu 22.04 기반 컨테이너 op2를 실행하고 셸에 진입합니다.
apt 업데이트
apt update
apt upgrade
- 설명: 패키지 인덱스를 최신으로 유지하고 업그레이드합니다.
2. Pyenv를 이용한 Python 설치
필수 라이브러리 설치
apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
python3-openssl git
- 설명: Python 빌드에 필요한 종속 라이브러리를 설치합니다.
pyenv 설치
curl https://pyenv.run | bash
pyenv 환경 설정
echo -e 'export PATH="$HOME/.pyenv/bin:$PATH"\n' \
'eval "$(pyenv init --path)"\n' \
'eval "$(pyenv init -)"\n' \
'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
Python 설치 및 설정
pyenv install 3.8.0
pyenv global 3.8.0
pyenv versions
- 설명: Airflow는 Python 3.8과 잘 호환되므로 해당 버전을 사용합니다.
3. PostgreSQL 설치 및 설정
설치 및 실행
apt install -y postgresql postgresql-contrib
service postgresql start
service postgresql status
- 설명: PostgreSQL 서버를 설치하고 실행 상태를 확인합니다.
DB 및 사용자 생성
sudo -u postgres psql
CREATE DATABASE airflow;
CREATE USER airflow_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow_user;
\q
- 설명: Airflow 전용 데이터베이스와 사용자 계정을 생성합니다.
4. Airflow 설치 및 설정
가상환경 생성 및 pip 업그레이드
python -m venv airflowenv
source airflowenv/bin/activate
pip install --upgrade pip
Airflow 설치
pip install apache-airflow[postgres]==2.9.0
- 설명: PostgreSQL을 backend로 사용하는 Airflow를 설치합니다.
Airflow 파일 생성
airflow info
Airflow 설정
vim ~/airflow/airflow.cfg
필요한 항목 수정:
executor = LocalExecutor
sql_alchemy_conn = postgresql+psycopg2://airflow_user:your_password@localhost/airflow
DB 초기화
airflow db init
관리자 사용자 생성
airflow users create \
--username admin \
--firstname Admin \
--lastname User \
--role Admin \
--email admin@example.com
웹서버 및 스케줄러 실행
service postgresql start # systemctl start postgresql
airflow webserver -p 8080 -D # -D : daemon으로 실행
airflow scheduler -D # -D : daemon으로 실행
5. 네트워크 및 재시작 고려
- Docker 환경에서 포트포워딩이 되어 있어야 브라우저에서 Airflow UI 접근 가능 (localhost:8080)
- PostgreSQL과 Airflow 서비스가 컨테이너 내부에서 정상 실행 중이어야 하며, 필요 시 재시작
- 데이터 손실 방지를 위해 Docker Volume 또는 외부 마운트를 고려해야 함
6. 요약
단계 설명
Docker 환경 준비 | Ubuntu 22.04 컨테이너 생성 |
Python 환경 구성 | pyenv로 Python 3.8 설치 |
PostgreSQL 구성 | DB/유저 생성 및 서비스 실행 |
Airflow 설치 | pip로 airflow[postgres] 설치 |
서비스 실행 | webserver와 scheduler 실행 |
네트워크 | 포트 개방 및 재시작 시 주의 |
반응형
'Data Mining & Distributed > Airflow' 카테고리의 다른 글
[ Airflow ] schedule - 일정 주기로 dag 실행하기 (0) | 2024.12.02 |
---|---|
[ Airflow ] schedule - 스케쥴러 시간 설정하기 (0) | 2024.12.02 |
[ Airflow ] Celery, Dask, Kubernetes, Ray - Executor 비교 설명하기 (0) | 2024.11.18 |
[ Airflow ] 버전별 특징 알아보기 (1) | 2024.11.16 |
[ Airflow ] Celery, Ray - 비교 설명하기 (0) | 2024.11.16 |