1. Kiểm tra yêu cầu phần cứng tối thiểu cho Apache Doris
Apache Doris có hai thành phần chính: Frontend (FE) và Backend (BE). Yêu cầu phần cứng khác nhau đáng kể giữa hai thành phần này. FE chỉ cần tài nguyên vừa phải để xử lý logic truy vấn, trong khi BE cần nhiều RAM và I/O để lưu trữ dữ liệu Columnar và thực hiện tính toán song song.
Đối với môi trường Ubuntu 24.04, hãy xác nhận cấu hình hiện tại của server trước khi bắt đầu. FE tối thiểu cần 2 vCPU và 4GB RAM, trong khi BE tối thiểu cần 4 vCPU và 8GB RAM. Disk phải là SSD để đảm bảo hiệu năng IOPS cao.
1.1. Kiểm tra CPU và RAM
Chạy lệnh để xem thông số kỹ thuật của CPU và tổng dung lượng RAM. Đảm bảo tổng RAM của máy không bị chia sẻ ảo (overcommit) quá mức gây ảnh hưởng đến BE.
lscpu | grep "Model name"
free -h
Kết quả mong đợi: CPU hiển thị dòng model rõ ràng (ví dụ: Intel Xeon hoặc AMD EPYC), và cột "total" trong free phải lớn hơn hoặc bằng 8GB cho BE, 4GB cho FE.
1.2. Kiểm tra Disk và Filesystem
Doris lưu trữ dữ liệu dưới dạng file. Bạn cần đảm bảo phân vùng disk dành cho dữ liệu (data disk) có dung lượng trống và sử dụng filesystem hỗ trợ tốt (XFS hoặc EXT4). XFS thường được ưu tiên hơn cho các workload I/O lớn.
df -hT /
lsblk
Kết quả mong đợi: Dung lượng trống (Available) phải đủ lớn (ít nhất 50GB cho môi trường test), và Type filesystem là xfs hoặc ext4.
1.3. Verify yêu cầu
Chạy script kiểm tra nhanh để đảm bảo không thiếu thành phần phần cứng trước khi tối ưu kernel.
grep -oP '^\s+\d+' /proc/cpuinfo | wc -l
grep MemTotal /proc/meminfo
Kết quả mong đợi: Số CPU cores phải >= 2 (FE) hoặc >= 4 (BE). MemTotal phải >= 4096MB (FE) hoặc >= 8192MB (BE).
2. Tối ưu hóa Kernel Ubuntu 24.04 cho hiệu năng cao
Apache Doris sử dụng rất nhiều socket để giao tiếp giữa FE và BE, cũng như giữa các BE với nhau. Mặc định của Linux thường giới hạn số lượng file descriptor và socket buffer, gây ra lỗi "Too many open files" hoặc latency cao. Cần điều chỉnh sysctl và ulimit.
2.1. Điều chỉnh tham số mạng và file descriptor (sysctl)
Sửa file cấu hình sysctl để tăng giới hạn số lượng file mở, kích thước buffer mạng và giảm thời gian giữ kết nối TCP đã đóng (TIME_WAIT). Điều này cực kỳ quan trọng cho BE khi xử lý hàng triệu file nhỏ.
Chỉnh sửa file /etc/sysctl.conf hoặc tạo file mới tại /etc/sysctl.d/99-doris.conf để không ghi đè cấu hình mặc định của Ubuntu.
cat > /etc/sysctl.d/99-doris.conf
Áp dụng thay đổi ngay lập tức bằng lệnh sysctl để không cần reboot.
sysctl --system
Kết quả mong đợi: Lệnh chạy thành công, không có lỗi. Khi kiểm tra lại với sysctl -a | grep file-max, giá trị phải là 2000000.
2.2. Cấu hình giới hạn người dùng (ulimit)
Java (chạy FE) và C++ (chạy BE) đều bị giới hạn số lượng file descriptor bởi shell. Cần đặt giới hạn này lên mức cao trong file cấu hình hệ thống để áp dụng cho tất cả người dùng, đặc biệt là user doris sẽ được tạo sau.
Chỉnh sửa file /etc/security/limits.conf để thêm quy tắc cho user doris (hoặc * để áp dụng toàn hệ thống nếu muốn đơn giản).
cat >> /etc/security/limits.conf
Kết quả mong đợi: File được ghi thêm nội dung. Sau khi tạo user và login, lệnh ulimit -n phải trả về 1000000.
3. Cài đặt Java JDK 11 và các công cụ phụ trợ
Apache Doris FE (Frontend) được viết bằng Java, do đó bắt buộc phải cài đặt JDK. Phiên bản được khuyến nghị và test ổn định nhất là JDK 11 (OpenJDK). BE không yêu cầu Java nhưng cần các công cụ như vim, net-tools để quản trị.
3.1. Cập nhật gói và cài đặt OpenJDK 11
Ubuntu 24.04 có thể mặc định cài JDK 21, nhưng Doris hiện tại tối ưu nhất trên JDK 11. Hãy cài đặt cụ thể phiên bản 11 từ kho OpenJDK của Ubuntu.
sudo apt update
sudo apt install -y openjdk-11-jdk
Kiểm tra phiên bản Java đã cài đặt để đảm bảo là 11.
java -version
update-alternatives --config java
Kết quả mong đợi: Output của java -version hiển thị "openjdk version "11.0.x". Nếu có nhiều phiên bản, sử dụng update-alternatives để chọn 11.
3.2. Cài đặt các công cụ hỗ trợ (vim, wget, net-tools)
Các công cụ này cần thiết để chỉnh sửa config file, tải binary Doris và kiểm tra cổng mạng sau này.
sudo apt install -y vim wget net-tools unzip curl
Kết quả mong đợi: Lệnh which vim, which wget, which netstat trả về đường dẫn tuyệt đối (ví dụ: /usr/bin/vim).
4. Cấu hình Firewall và mở cổng mạng bắt buộc
Ubuntu 24.04 mặc định bật UFW (Uncomplicated Firewall). Nếu không mở các cổng, FE và BE sẽ không thể kết nối với nhau, và bạn không thể truy cập Web UI (Doris Manager/MySQL). Cần mở 3 cổng chính: 9030 (FE HTTP/SQL), 8030 (BE Heartbeat), 8040 (BE Web UI).
4.1. Kiểm tra và bật UFW
Trước tiên, xác nhận trạng thái firewall. Nếu đang tắt, hãy bật nó lên để đảm bảo bảo mật, sau đó mở các lỗ hổng cần thiết.
sudo ufw status
sudo ufw enable
Kết quả mong đợi: UFW hiển thị "Status: active".
4.2. Mở các cổng Apache Doris
Cần mở 3 cổng quan trọng:
- 9030: Cổng giao tiếp của FE (FE Query Port) dùng để MySQL client kết nối và HTTP API.
- 8030: Cổng Heartbeat của BE để báo cáo trạng thái với FE.
- 8040: Cổng Web UI của BE để xem thông tin chi tiết về các Node BE.
Thêm các rule allow vào UFW.
sudo ufw allow 9030/tcp comment "Apache Doris FE"
sudo ufw allow 8030/tcp comment "Apache Doris BE Heartbeat"
sudo ufw allow 8040/tcp comment "Apache Doris BE Web UI"
Kiểm tra lại danh sách các cổng đã mở để đảm bảo chúng được chấp nhận.
sudo ufw status verbose
Kết quả mong đợi: Output hiển thị 3 cổng 9030, 8030, 8040 ở trạng thái "ALLOW" cho cả "Anywhere".
4.3. Verify kết quả cuối cùng
Chạy lệnh test để đảm bảo các cổng đã lắng nghe (nếu FE/BE đã chạy) hoặc ít nhất là firewall không chặn. Ở bước chuẩn bị này, ta chỉ verify firewall đã cho phép.
sudo iptables -L ufw-before-allow -n -v | grep -E "9030|8030|8040"
Kết quả mong đợi: Các dòng output hiển thị các port 9030, 8030, 8040 với ACTION là ACCEPT.
Điều hướng series:
Mục lục: Series: Triển khai Database Columnar với Apache Doris trên Ubuntu 24.04
Phần 2: Tải về và cài đặt Apache Doris (FE và BE) trên Ubuntu »