Home / Data Engineer / Tech Stack / Hướng dẫn dựng Airflow trên máy cá nhân để dev/test

Hướng dẫn dựng Airflow trên máy cá nhân để dev/test

Đầu tiên các bạn tải file đính kèm ở trên về giải nén ra & cài sẵn docker compose nhé

Bước 1: Các bạn nên chạy postgresql riêng để dùng nhiều mục đích (nếu chưa có) với docker-compose-postgresql.yaml rồi tạo 1 database tên là airflow trên postgresql

docker compose -f docker-compose-postgresql.yaml up -d

Bước 2: Sửa file .env (nếu các bạn muốn tùy chỉnh lại các thông số theo mong muốn):

AIRFLOW_IMAGE_NAME=apache/airflow:slim-2.9.3
AIRFLOW_VERSION=2.10.5
AIRFLOW_UID=1000

# Các thư mục dags, logs, config, plugins sẽ mount ra thư mục này để tiện dev/test > bạn sửa lại 
AIRFLOW_PROJ_DIR=~/airflow

# Kết nối tới posgresql, Bạn sửa lại user/pass nếu của bạn khác (pgadmin:123)
AIRFLOW__CELERY__RESULT_BACKEND=db+postgresql://pgadmin:123@postgres:5432/airflow
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://pgadmin:123@postgres:5432/airflow

#User truy cập airflow tại localhost:8122
_AIRFLOW_WWW_USER_USERNAME=airflow
_AIRFLOW_WWW_USER_PASSWORD=af123

Bước 3: Chỉnh sửa các thư viện cần cài trong requirements.txt theo project bạn cần, VD như project mình cần clickhouse client & oracle:

clickhouse-connect
airflow-clickhouse-plugin

# Core dependencies
--only-binary :all: pyarrow

dag-factory>=0.18.0,<0.28.0
#dag-factory>=0.11.3
apache-airflow-providers-common-sql>=1.20.0
oracledb>=2.0.0
apache-airflow-providers-oracle[common.sql]
sqlalchemy>=1.4.0
apache-airflow-providers-cncf-kubernetes>=7.4.0

Bước 4: Tiếp đó chạy docker-compose.yaml của airflow :

docker compose -f docker-compose-airflow.yaml up -d

File docker-compose-airflow.yaml này cơ bản là đã lược bớt airflow-worker, flower và redis so với bản full dùng trong product để cho nhẹ hơn dùng cho dev/test local

Bước 5: Truy cập http://localhost:8122/ với user airflow và mật khẩu af123 đã thiết lập ở Bước 2

(port 8122 để tránh trùng port 8080 của các service khác, bạn có thể sửa trong docker-compose-airflow.yaml)

Bước 6:

  • Mở thư mục đã map vào container (AIRFLOW_PROJ_DIR) ở Bước 2 và thêm thử dags:
  • Load lại airflow và bấm chạy thử dags:
  • Dags đã chạy và success:

Bài viết này dựa trên nguồn sau, tuy nhiên đã được sửa lại file để chạy được

(airflow.Dockerfile trong bài không hoạt động nên docker-compose.yml không dùng được)

https://viblo.asia/p/dung-apache-airflow-phien-ban-cuc-nhe-localexecutor-voi-docker-compose-x7Z4DAjPJnX
Tagged:

Leave a Reply

Your email address will not be published. Required fields are marked *