data engineering

Airflow 설치 및 사용법

metamong-data 2025. 1. 16. 22:37
728x90
반응형

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 설치

  1. 환경 변수 설정 Airflow는 홈 디렉토리와 기본 데이터베이스를 설정해야 합니다. 환경 변수를 설정합니다.

     export AIRFLOW_HOME=~/airflow
  2. 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 활성화

  1. 작성한 DAG 파일을 ~/airflow/dags/ 디렉토리에 저장합니다.

     mv example_dag.py ~/airflow/dags/
  2. 웹 UI에서 DAG를 활성화합니다.


6. 문제 해결

6.1 웹 서버 또는 스케줄러가 작동하지 않을 때

  • 로그 파일 확인: ~/airflow/logs/

  • 권한 문제 확인: chmod -R 755 ~/airflow

6.2 포트 충돌

  • 기본 포트(8080)가 사용 중이면 다른 포트를 지정합니다.

      airflow webserver --port 9090

결론

Linux 환경에서 Airflow를 설치하고 사용하는 방법을 단계별로 설명했습니다. 이를 통해 데이터 파이프라인을 쉽게 관리하고 자동화할 수 있습니다. 추가 기능과 확장은 공식 문서를 참조하세요.

728x90