Airflow Installation
#1. venv 생성 및 가상환경 활성화
python3 -m venv ~/airflow_workspace/airflow_env
source ~/airflow_worspace/airflow_env/bin/activate
#2. airflow 홈디렉토리 설정
$AIRFLOW_HOME=~/airflow_workspace/airflow
#3. airflow 설치
pip install "apache-airflow[celery]==2.3.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.3.0/constraints-3.7.txt"
#4. DB 초기화 및 계정 생성
airflow users create --username admin --firstname ds --lastname kim --role Admin --email test@test.com --password admin
#5. Airflow Web/Scheduler 기동
airflow webserver -p 8083
airflow scheduler
#6. Airflow Dag 폴더 생성 및 테스트 파일 생성
mkdir ~/airflow_workspace/airflow/dags
cd ~/airflow_workspace/airflow/dags
vi test_dag.py
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2023, 2, 7),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'test_dag',
default_args=default_args,
description='My first Apache Airflow DAG',
schedule_interval=timedelta(hours=1),
)
task_1 = BashOperator(
task_id='print_hello',
bash_command='echo "Hello, World!"',
dag=dag,
)
task_2 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
dag=dag,
)
task_1 >> task_2