Tải về và chuẩn bị gói cài đặt Apache Doris
Chúng ta sẽ tải bản phát hành ổn định (Stable Release) mới nhất của Apache Doris từ trang chủ Apache.
Việc tải bản Stable đảm bảo tính ổn định cao cho môi trường production, tránh các lỗi tiềm ẩn trong bản Beta hoặc Nightly.
Kết quả mong đợi: File tar.gz của Apache Doris nằm trong thư mục hiện tại.
cd /opt
sudo wget https://archive.apache.org/dist/doris/apache-doris-2.0.3-bin.tar.gz
Giải nén gói cài đặt vào thư mục /opt/doris.
Ta cần giải nén để truy cập vào cấu trúc thư mục bin, conf, và lib bên trong package.
Kết quả mong đợi: Thư mục apache-doris-2.0.3-bin xuất hiện trong /opt.
sudo tar -xvf apache-doris-2.0.3-bin.tar.gz
Đổi tên thư mục cho gọn gàng và di chuyển vào vị trí cố định /opt/doris.
Việc đặt tên ngắn gọn giúp việc gõ lệnh và cấu hình file sau này dễ dàng hơn, tránh lỗi typo.
Kết quả mong đợi: Thư mục /opt/doris chứa toàn bộ source code và binary của Doris.
sudo mv apache-doris-2.0.3-bin /opt/doris
Chuyển quyền sở hữu thư mục cho user hiện tại (thường là root hoặc admin) để tránh lỗi permission khi chạy lệnh.
Apache Doris cần quyền ghi vào thư mục log và data, nếu chạy bằng root thì cần chmod/chown đúng cách.
Kết quả mong đợi: User hiện tại có quyền read/write đầy đủ trên /opt/doris.
sudo chown -R $USER:$USER /opt/doris
Tổ chức cấu trúc thư mục dữ liệu và Log
Tạo cấu trúc thư mục con cho Frontend (FE) và Backend (BE) trong /opt/doris.
Tách biệt rõ ràng thư mục data và log giữa FE và BE giúp việc quản trị, backup và troubleshooting trở nên minh bạch.
Kết quả mong đợi: Các thư mục fe/data, fe/log, be/data, be/log được tạo thành công.
cd /opt/doris
mkdir -p fe/data fe/log be/data be/log
Chuyển các file binary và config mẫu từ thư mục gốc sang các thư mục tương ứng.
Apache Doris phân chia rõ ràng: FE quản lý metadata, BE quản lý storage. Việc di chuyển giúp mô phỏng cấu trúc cluster thực tế ngay từ đầu.
Kết quả mong đợi: Thư mục /opt/doris/fe chứa bin, conf, lib của FE và /opt/doris/be chứa tương tự cho BE.
cp -r /opt/doris/bin/fe /opt/doris/fe/
cp -r /opt/doris/conf/fe /opt/doris/fe/conf
cp -r /opt/doris/lib /opt/doris/fe/lib
cp -r /opt/doris/bin/be /opt/doris/be/
cp -r /opt/doris/conf/be /opt/doris/be/conf
cp -r /opt/doris/lib /opt/doris/be/lib
Thiết lập quyền sở hữu cho các thư mục mới tạo để user hiện tại có thể ghi log và data.
Nếu bỏ qua bước này, khi khởi động Doris, tiến trình sẽ bị lỗi "Permission denied" khi cố gắng tạo file log hoặc data.
Kết quả mong đợi: Không còn cảnh báo quyền truy cập khi chạy lệnh khởi động.
chown -R $USER:$USER /opt/doris/fe
chown -R $USER:$USER /opt/doris/be
Cấu hình và khởi động Frontend (FE)
Chỉnh sửa file config `fe.conf` để định nghĩa các tham số quan trọng cho FE chạy ở chế độ single-node.
Trong môi trường single-node, FE cần biết đường dẫn data, log và port để BE có thể kết nối lại. Port 9030 là port giao tiếp với client (MySQL protocol).
Kết quả mong đợi: File `/opt/doris/fe/conf/fe.conf` được cập nhật với cấu hình chính xác.
cat > /opt/doris/fe/conf/fe.conf
Khởi động Frontend với chế độ single-node để tự động thực hiện bootstrap.
Lệnh `--single_node` sẽ tự động tạo metadata ban đầu và khởi động FE mà không cần chạy qua bước bootstrap thủ công phức tạp.
Kết quả mong đợi: FE khởi động thành công, xuất hiện log "FE started" và không có lỗi fatal.
cd /opt/doris/fe
./bin/start_fe.sh --single_node
Kiểm tra trạng thái FE bằng cách xem log hoặc dùng lệnh netstat để xác nhận port đã mở.
Việc verify đảm bảo FE đã lắng nghe đúng port 9030 và 8030 trước khi tiến hành cấu hình BE.
Kết quả mong đợi: Port 9030 và 8030 đang ở trạng thái LISTEN.
netstat -tlnp | grep -E '9030|8030'
Chờ khoảng 30-60 giây để FE hoàn tất quá trình khởi động và đồng bộ metadata nội bộ.
FE cần thời gian để load metadata từ disk và sẵn sàng nhận kết nối. Nếu cấu hình BE ngay lập tức có thể bị lỗi "FE not ready".
Kết quả mong đợi: Log file `/opt/doris/fe/log/fe.log` không còn dòng "Starting" liên tục mà chuyển sang trạng thái "Ready".
tail -n 20 /opt/doris/fe/log/fe.log
Cấu hình và khởi động Backend (BE)
Chỉnh sửa file config `be.conf` để BE biết đường kết nối tới FE đã khởi động.
BE cần biết địa chỉ IP và Port Heartbeat của FE để đăng ký (register) vào cluster. Đây là bước quan trọng nhất để FE nhận diện BE.
Kết quả mong đợi: File `/opt/doris/be/conf/be.conf` được cập nhật với đúng thông số FE.
cat > /opt/doris/be/conf/be.conf
Khởi động Backend (BE) sau khi FE đã sẵn sàng.
BE sẽ tự động gửi heartbeat đến FE để đăng ký. Nếu FE chưa sẵn sàng, BE sẽ tự động retry cho đến khi kết nối thành công.
Kết quả mong đợi: BE khởi động thành công và xuất hiện log "FE heartbeat successful" hoặc "Register to FE success".
cd /opt/doris/be
./bin/start_be.sh
Kiểm tra log của BE để xác nhận quá trình kết nối với FE.
Log là nguồn thông tin chính để biết BE đã join vào cluster hay chưa. Nếu thấy lỗi "FE not found" hoặc "Connection refused", cần kiểm tra lại firewall hoặc cấu hình IP.
Kết quả mong đợi: Dòng log xác nhận kết nối thành công với FE.
tail -f /opt/doris/be/log/be.INFO
Verify trạng thái BE từ phía FE bằng cách truy cập vào Web UI hoặc log của FE.
FE sẽ liệt kê tất cả các BE đã kết nối. Việc này xác nhận kiến trúc 1 FE + 1 BE đã hoạt động.
Kết quả mong đợi: Trong log FE xuất hiện dòng "Heartbeat from BE: [IP]" hoặc truy cập http://localhost:8030 thấy BE có trạng thái "Alive".
tail -f /opt/doris/fe/log/fe.log | grep -i "heartbeat"
Khởi động lại BE nếu cần thiết để đảm bảo kết nối bền vững sau lần đầu.
Đôi khi lần đăng ký đầu tiên có thể bị chậm, restart giúp BE gửi heartbeat mới và ổn định trạng thái.
cd /opt/doris/be
./bin/stop_be.sh
./bin/start_be.sh
Đ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 1: Chuẩn bị môi trường Ubuntu 24.04 và yêu cầu hệ thống cho Apache Doris
Phần 3: Cấu hình quản trị viên và kết nối Web UI của Apache Doris »