Việc cài đặt Apache Airflow trên máy Mac sử dụng chip M1 (Apple Silicon) thường gặp khó khăn do các vấn đề tương thích thư viện (đặc biệt là pandas, numpy và các thư viện biên dịch khác). Dưới đây là hướng dẫn từng bước để thiết lập môi trường phát triển cục bộ một cách trơn tru.

1. Điều kiện tiên quyết (Prerequisites)

Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Homebrew. Nếu chưa, hãy chạy lệnh sau trong Terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Cài đặt Python

Airflow hoạt động tốt nhất với Python 3.8, 3.9 hoặc 3.10. Trên M1 Mac, việc quản lý phiên bản Python bằng pyenv được khuyến nghị để tránh xung đột với Python mặc định của hệ thống.
# Cài đặt pyenv và các thư viện hỗ trợ
brew install pyenv openssl readline sqlite3 xz zlib

# Cài đặt Python 3.9 (ví dụ)
pyenv install 3.9.16
pyenv global 3.9.16
Sau khi cài đặt, hãy thêm pyenv vào file cấu hình shell của bạn (ví dụ: ~/.zshrc) để nó tự động tải.

3. Tạo môi trường ảo (Virtual Environment)

Luôn luôn sử dụng môi trường ảo để cài đặt Airflow nhằm cách ly các gói thư viện (packages).
# Tạo thư mục dự án
mkdir airflow-local
cd airflow-local

# Tạo môi trường ảo
python -m venv venv

# Kích hoạt môi trường ảo
source venv/bin/activate

4. Cài đặt Airflow (Bước quan trọng nhất cho M1)

Đây là bước mà hầu hết người dùng M1 gặp lỗi. Bạn bắt buộc phải sử dụng constraints file (file ràng buộc) để đảm bảo pip cài đặt đúng các phiên bản thư viện đã được biên dịch sẵn (wheels) và tương thích với nhau.
Đừng chỉ chạy pip install apache-airflow. Hãy làm như sau:
# Định nghĩa phiên bản Airflow và Python
AIRFLOW_VERSION=2.8.1
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"

# URL của file constraints tương ứng
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-/constraints-.txt"

# Cài đặt Airflow với constraints
pip install "apache-airflow==" --constraint ""
Nếu bạn cần cài thêm các gói phụ trợ (providers) như Postgres hay Google:
pip install "apache-airflow[postgres,google]==" --constraint ""

5. Khởi tạo Airflow

Sau khi cài đặt xong, bạn cần khởi tạo cơ sở dữ liệu và tạo tài khoản người dùng.
  1. Thiết lập biến môi trường (Optional):
export AIRFLOW_HOME=~/airflow
  1. Khởi tạo Database:
airflow db init
  1. Tạo Admin User:
airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email spiderman@superhero.org

6. Chạy Airflow

Để chạy Airflow, bạn cần bật cả Webserver và Scheduler.
Cách 1: Chạy Standalone (Dành cho bản mới, tiện lợi nhất) Lệnh này sẽ chạy tất cả các thành phần cần thiết cùng lúc.
airflow standalone
Cách 2: Chạy thủ công từng thành phần (Cổ điển) Mở 2 cửa sổ Terminal (tab) khác nhau:
  • Terminal 1 (Webserver):
airflow webserver -p 8080
  • Terminal 2 (Scheduler):
airflow scheduler

7. Truy cập

Mở trình duyệt và truy cập vào: http://localhost:8080 Đăng nhập với tài khoản admin bạn đã tạo ở trên.
Khắc phục sự cố (Troubleshooting) trên M1
  • Lỗi NO_MODULE_NAMED_PWD: Đây là lỗi thường gặp với thư viện psycopg2. Hãy cài đặt bản binary:
pip install psycopg2-binary
Lỗi biên dịch (Compile error): Đảm bảo bạn đã cài xcode-select:
xcode-select --install
Bài gốc - tại đây