Airflow 설치 및 사용법
Apache Airflow는 워크플로 자동화를 위한 오픈 소스 플랫폼으로, 복잡한 데이터 파이프라인을 관리하고 실행하는 데 사용됩니다. 이 문서에서는 Linux 환경에서 Airflow를 설치하고 사용하는 방법을 단계별로 설명합니다.
1. 사전 준비
1.1 시스템 요구 사항
운영 체제: Ubuntu, CentOS, 또는 기타 Linux 배포판
Python: Python 3.7 이상
패키지 관리자:
pip
또는conda
1.2 의존성 설치
sudo apt update
sudo apt install -y python3 python3-pip python3-venv
2. Airflow 설치
2.1 가상 환경 생성
가상 환경을 사용하여 의존성 충돌을 방지합니다.
python3 -m venv airflow_env
source airflow_env/bin/activate
2.2 Airflow 설치
환경 변수 설정 Airflow는 홈 디렉토리와 기본 데이터베이스를 설정해야 합니다. 환경 변수를 설정합니다.
export AIRFLOW_HOME=~/airflow
Airflow 설치 아래 명령으로 최신 Airflow 버전을 설치합니다.
pip install "apache-airflow[celery,postgres,redis]==2.6.3" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.6.3/constraints-3.7.txt"
3. Airflow 초기 설정
3.1 데이터베이스 초기화
Airflow는 메타데이터를 관리하기 위해 데이터베이스를 사용합니다. 기본적으로 SQLite가 사용됩니다.
airflow db init
출력 예시
[2023-01-01 12:00:00,000] INFO - Successfully created tables.
3.2 관리자 계정 생성
웹 UI에 액세스하기 위한 계정을 생성합니다.
airflow users create \
--username admin \
--firstname John \
--lastname Doe \
--role Admin \
--email admin@example.com
4. Airflow 실행
4.1 웹 서버 시작
웹 UI를 시작하려면 다음 명령을 실행합니다.
airflow webserver --port 8080
출력 예시
[2023-01-01 12:00:00,000] INFO - Starting gunicorn on port 8080...
웹 브라우저에서 http://localhost:8080
으로 접속합니다.
4.2 스케줄러 실행
워크플로 실행을 위해 스케줄러를 시작합니다.
airflow scheduler
출력 예시
[2023-01-01 12:01:00,000] INFO - Starting the scheduler...
5. Airflow 사용법
5.1 DAG 디렉토리 설정
DAG(Directed Acyclic Graph)는 워크플로를 정의하는 파일입니다. 기본적으로 ~/airflow/dags/
디렉토리에 저장됩니다.
mkdir -p ~/airflow/dags
5.2 기본 DAG 작성
다음은 간단한 DAG 예제입니다.
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2023, 1, 1),
'retries': 1,
}
dag = DAG(
'example_dag',
default_args=default_args,
schedule_interval='@daily',
)
task1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag,
)
task2 = BashOperator(
task_id='echo_hello',
bash_command='echo "Hello, Airflow!"',
dag=dag,
)
task1 >> task2
5.3 DAG 활성화
작성한 DAG 파일을
~/airflow/dags/
디렉토리에 저장합니다.mv example_dag.py ~/airflow/dags/
웹 UI에서 DAG를 활성화합니다.
6. 문제 해결
6.1 웹 서버 또는 스케줄러가 작동하지 않을 때
로그 파일 확인:
~/airflow/logs/
권한 문제 확인:
chmod -R 755 ~/airflow
6.2 포트 충돌
기본 포트(8080)가 사용 중이면 다른 포트를 지정합니다.
airflow webserver --port 9090
결론
Linux 환경에서 Airflow를 설치하고 사용하는 방법을 단계별로 설명했습니다. 이를 통해 데이터 파이프라인을 쉽게 관리하고 자동화할 수 있습니다. 추가 기능과 확장은 공식 문서를 참조하세요.