Hướng dẫn nhanh này sẽ giúp bạn nhanh chóng thiết lập và chạy Airflow với CeleryExecutor trong Docker.
Chú ý
Quy trình này có thể hữu ích để học và khám phá. Tuy nhiên, việc điều chỉnh nó để sử dụng trong các tình huống thực tế có thể phức tạp. Việc thay đổi trong quy trình này sẽ đòi hỏi kiến thức chuyên sâu về Docker & Docker Compose, và cộng đồng Airflow có thể không thể giúp bạn.
Vì lý do đó, chúng tôi khuyến nghị sử dụng Kubernetes với Official Airflow Community Helm Chart khi bạn sẵn sàng chạy Airflow trong môi trường production
1. Trước khi bạn bắt đầu
Quy trình này giả định bạn đã quen với Docker và Docker Compose. Nếu bạn chưa làm việc với các công cụ này trước đây, bạn nên dành chút thời gian để làm quen với Docker Quick Start (đặc biệt là phần về Docker Compose) để bạn quen thuộc với cách chúng hoạt động.
Hãy tuân theo các bước sau để cài đặt các công cụ cần thiết, nếu bạn chưa thực hiện điều này.
- Cài đặt Docker Community Edition (CE) trên máy làm việc của bạn. Tùy thuộc vào hệ điều hành của bạn, bạn có thể cần cấu hình Docker để sử dụng ít nhất 4,00 GB bộ nhớ để các container Airflow chạy đúng cách. Vui lòng tham khảo phần Tài nguyên trong tài liệu Docker cho Windows hoặc Docker cho Mac để biết thêm thông tin.
- Cài đặt Docker Compose v2.14.0 hoặc mới hơn trên máy làm việc của bạn.
2. Lấy docker-compose.yaml
Để triển khai Airflow trên Docker Compose, bạn nên lấy docker-compose.yaml.
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.8.4/docker-compose.yaml'
Tập tin này chứa một số định nghĩa dịch vụ:
- airflow-scheduler – Lập lịch theo dõi tất cả các công việc và DAGs, sau đó kích hoạt các phiên bản công việc sau khi các phụ thuộc của chúng hoàn thành.
- airflow-webserver – Máy chủ web có sẵn tại http://localhost:8080.
- airflow-worker – Người thực thi công việc thực thi các công việc được đặt bởi bộ lập lịch.
- airflow-triggerer – Người kích hoạt chạy một vòng lặp sự kiện cho các công việc có thể hoãn lại.
- airflow-init – Dịch vụ khởi tạo.
- postgres – Cơ sở dữ liệu.
- redis – Trung gian redis chuyển tiếp các thông báo từ lập lịch đến người thực thi.
- flower – Ứng dụng flower để giám sát môi trường. Nó có sẵn tại http://localhost:5555.
Tất cả các dịch vụ này cho phép bạn chạy Airflow với CeleryExecutor. Để biết thêm thông tin, xem Tổng quan Kiến trúc.
Một số thư mục trong container được mounted, điều này có nghĩa là nội dung của chúng được đồng bộ hóa giữa máy tính của bạn và container.
- ./dags – bạn có thể đặt các tệp DAG của mình ở đây.
- ./logs – chứa các nhật ký từ việc thực thi công việc và lập lịch.
- ./config – bạn có thể thêm trình phân tích nhật ký tùy chỉnh hoặc thêm airflow_local_settings.py để cấu hình chính sách cụm.
- ./plugins – bạn có thể đặt các plugin tùy chỉnh của mình ở đây.
Tập tin này sử dụng hình ảnh Airflow mới nhất (apache/airflow). Nếu bạn cần cài đặt một thư viện Python mới hoặc thư viện hệ thống mới, bạn có thể xây dựng hình ảnh của mình.
3. Cài đặt người dùng Airflow đúng
Trên Linux, việc bắt đầu nhanh cần biết id người dùng máy chủ của bạn và cần có id nhóm được đặt thành 0. Nếu không, các tệp được tạo trong dags, logs và plugins sẽ được tạo với quyền sở hữu của người dùng root. Bạn phải đảm bảo cấu hình chúng cho docker-compose:
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
4. Chạy Airflow
Bây giờ bạn có thể bắt đầu tất cả các dịch vụ:
docker compose up -d
5. Truy cập giao diện web
Sau khi cụm đã khởi động, bạn có thể đăng nhập vào giao diện web và bắt đầu thử nghiệm với các DAG.
Máy chủ web có sẵn tại: http://localhost:8080. Tài khoản mặc định có tên đăng nhập là airflow
và mật khẩu là airflow
.
Bây giờ, bạn đã sẵn sàng bắt đầu tạo và lập lịch cho các DAG của mình trong Airflow! Ở các phần tiếp theo của series, chúng ta sẽ tìm hiểu các khái niệm cơ bản và trọng tâm của Airflow.
Tài liệu tham khảo here