Yêu cầu phần cứng tối thiểu cho cụm HBase phân tán
Để đảm bảo Apache HBase hoạt động ổn định trong môi trường Distributed Mode, bạn cần chuẩn bị phần cứng đáp ứng các ngưỡng tối thiểu sau cho từng node (bao gồm Master và RegionServer).
Đặc biệt chú ý đến RAM và I/O của ổ cứng vì HBase là hệ thống lưu trữ dựa trên memory và disk I/O cao.
- CPU: Tối thiểu 4 Cores (khuyên dùng 8+ Cores) để xử lý các request song song.
- RAM: Tối thiểu 8GB cho mỗi node. HBase tiêu tốn nhiều RAM cho BlockCache và MemStore. Nếu dùng 64-bit JVM, cần ít nhất 4GB RAM tự do cho HBase sau khi trừ đi hệ điều hành.
- Storage: Tối thiểu 500GB SSD hoặc HDD tốc độ cao. Khuyến nghị sử dụng RAID 10 hoặc RAID 5 cho dữ liệu HDFS/HBase để cân bằng giữa tốc độ và độ tin cậy.
- Mạng (Network): Tối thiểu 1Gbps, khuyến nghị 10Gbps để giảm latency khi trao đổi dữ liệu giữa các RegionServer và Master.
Việc không đáp ứng đủ yêu cầu RAM sẽ dẫn đến hiện tượng "Out of Memory" hoặc hệ thống liên tục bị Swap, làm giảm hiệu năng nghiêm trọng.
Verify yêu cầu phần cứng
Chạy các lệnh sau để kiểm tra cấu hình hiện tại của máy chủ trước khi cài đặt.
lscpu | grep "Core(s)"
Kết quả mong đợi: Hiển thị số lượng Cores, ví dụ: "Core(s) per socket: 4".
free -h
Kết quả mong đợi: Tổng RAM (total) phải lớn hơn hoặc bằng 8GB.
lsblk -o NAME,SIZE,TYPE
Kết quả mong đợi: Hiển thị danh sách ổ cứng với dung lượng và loại (ví dụ: nvme0n1 480G disk).
Cài đặt Ubuntu 24.04 LTS cho các Node
Bạn cần cài đặt Ubuntu Server 24.04 LTS trên tất cả các máy chủ sẽ đóng vai trò là HBase Master và HBase RegionServers. Trong phần này, chúng ta giả định bạn đã có ISO hoặc truy cập console để cài đặt OS.
Sau khi cài đặt xong hệ điều hành, bước đầu tiên quan trọng nhất là cập nhật toàn bộ gói phần mềm và cài đặt các công cụ cơ bản cần thiết cho việc quản lý hệ thống.
Cập nhật hệ thống và cài đặt công cụ cơ bản
Thực hiện lệnh cập nhật repository và nâng cấp các gói đã cài đặt lên phiên bản mới nhất.
sudo apt update && sudo apt upgrade -y
Kết quả mong đợi: Hệ thống hiển thị danh sách các gói cần nâng cấp và yêu cầu xác nhận. Sau khi chạy xong, không còn thông báo lỗi hay cảnh báo bảo mật.
Cài đặt các công cụ mạng và hệ thống cơ bản: curl, wget, vim, net-tools, và openssh-server để kết nối giữa các node.
sudo apt install -y curl wget vim net-tools openssh-server
Kết quả mong đợi: Các gói phần mềm được cài đặt thành công mà không có lỗi.
Khởi động lại dịch vụ SSH để đảm bảo bạn có thể kết nối từ xa.
sudo systemctl enable --now ssh
Kết quả mong đợi: Dịch vụ SSH ở trạng thái active (running).
Cài đặt OpenJDK 17 và cấu hình JAVA_HOME
Apache HBase phiên bản hiện đại yêu cầu Java 17 (LTS). Trên Ubuntu 24.04, OpenJDK 17 là phiên bản mặc định trong repository chính thức, đảm bảo tương thích tốt nhất.
Cài đặt OpenJDK 17
Sử dụng gói quản lý apt để cài đặt OpenJDK 17 JRE và JDK.
sudo apt install -y openjdk-17-jdk openjdk-17-jre
Kết quả mong đợi: Quá trình cài đặt hoàn tất, bao gồm cả các thư viện hỗ trợ.
Verify phiên bản Java đã được cài đặt.
java -version
Kết quả mong đợi: Hiển thị thông tin "openjdk version "17.0.x" ... build ...".
Cấu hình biến môi trường JAVA_HOME
HBase cần biết chính xác đường dẫn đến JDK thông qua biến môi trường JAVA_HOME. Nếu không cấu hình này, HBase có thể không khởi động hoặc chạy với phiên bản Java không đúng.
Trên Ubuntu 24.04, đường dẫn mặc định của OpenJDK 17 thường nằm tại /usr/lib/jvm/java-17-openjdk-amd64.
Tạo file cấu hình biến môi trường toàn cục trong thư mục /etc/profile.d để áp dụng cho tất cả các user.
sudo nano /etc/profile.d/hbase-java.sh
Sau khi mở file, dán toàn bộ nội dung sau vào:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
Lưu file và thoát (Ctrl+O, Enter, Ctrl+X).
Áp dụng ngay lập tức biến môi trường cho phiên làm việc hiện tại.
source /etc/profile.d/hbase-java.sh
Verify biến môi trường đã được đặt đúng.
echo $JAVA_HOME
Kết quả mong đợi: Trả về đường dẫn "/usr/lib/jvm/java-17-openjdk-amd64".
which java
Kết quả mong đợi: Trả về "/usr/lib/jvm/java-17-openjdk-amd64/bin/java".
Tạo user riêng và cấu hình quyền sudo cho HBase
Trong môi trường production, tuyệt đối không chạy dịch vụ HBase bằng quyền root. Bạn cần tạo một user riêng (ví dụ: hbase) để quản lý và chạy dịch vụ này.
Tạo user hbase
Tạo user mới với tên "hbase", tự động tạo thư mục home và shell login là bash.
sudo adduser hbase --shell /bin/bash --gecos ""
Kết quả mong đợi: Hệ thống yêu cầu đặt mật khẩu cho user hbase. Bạn hãy nhập mật khẩu mạnh và xác nhận lại. Sau đó chọn "Y" cho các câu hỏi xác nhận khác.
Cấp quyền sudo cho user hbase
Thêm user hbase vào nhóm sudo để user này có thể thực thi các lệnh quản trị hệ thống khi cần thiết (ví dụ: khởi động service, xem log hệ thống).
sudo usermod -aG sudo hbase
Kết quả mong đợi: Lệnh chạy thành công không có thông báo lỗi.
Chuyển quyền sở hữu thư mục HBase (Chuẩn bị)
Dù chưa cài đặt HBase, bạn cần chuẩn bị thư mục cài đặt. Giả sử chúng ta sẽ cài đặt HBase vào thư mục /opt/hbase. Tạo thư mục này và chuyển quyền sở hữu sang user hbase ngay từ đầu.
sudo mkdir -p /opt/hbase
sudo chown -R hbase:sudo /opt/hbase
Kết quả mong đợi: Thư mục /opt/hbase thuộc về user hbase và nhóm sudo.
Verify quyền truy cập
Switch sang user hbase và kiểm tra quyền sudo.
sudo -i -u hbase
Sau khi chuyển sang user hbase, chạy lệnh kiểm tra quyền sudo.
sudo whoami
Kết quả mong đợi: Hệ thống yêu cầu nhập mật khẩu của user hbase (mã đã đặt ở trên), sau khi nhập xong trả về "root".
Thoát khỏi user hbase để quay lại user root/admin ban đầu.
exit
Cấu hình hostname và file /etc/hosts
HBase Distributed Mode dựa vào DNS hoặc file /etc/hosts để các node giao tiếp với nhau. Trong môi trường triển khai nội bộ, cấu hình /etc/hosts là phương pháp nhanh nhất và ổn định nhất để ánh xạ IP đến hostname.
Giả định chúng ta có 3 node với cấu hình sau:
- Node 1 (Master): IP 192.168.1.10, Hostname: hbase-master
- Node 2 (RegionServer 1): IP 192.168.1.11, Hostname: hbase-rs1
- Node 3 (RegionServer 2): IP 192.168.1.12, Hostname: hbase-rs2
Cấu hình hostname cho từng node
Thực hiện lệnh này trên từng node tương ứng để đặt tên cho máy chủ.
sudo hostnamectl set-hostname hbase-master
Kết quả mong đợi: Lệnh chạy thành công. Bạn cần đăng xuất và đăng nhập lại hoặc reboot để thấy hostname thay đổi trong prompt shell.
Đối với các node RegionServer, thay thế "hbase-master" bằng "hbase-rs1" và "hbase-rs2" tương ứng.
Cấu hình file /etc/hosts trên TẤT CẢ các node
Bạn cần chỉnh sửa file /etc/hosts trên MỖI node trong cụm để đảm bảo chúng đều có thể ping và kết nối lẫn nhau qua hostname.
Mở file cấu hình trên tất cả các node.
sudo nano /etc/hosts
Sửa nội dung file thành như sau (bổ sung các dòng IP và hostname tương ứng):
127.0.0.1 localhost
127.0.1.1 hbase-master
# Cluster Nodes
192.168.1.10 hbase-master
192.168.1.11 hbase-rs1
192.168.1.12 hbase-rs2
Lưu ý: Dòng 127.0.1.1 hbase-master là cấu hình mặc định của Ubuntu, hãy giữ nguyên hoặc thay thế tên theo hostname thực tế của node đó.
Lưu file và thoát.
Verify kết nối giữa các node
Trên node Master, ping các node RegionServer để kiểm tra khả năng phân giải tên và kết nối mạng.
ping -c 3 hbase-rs1
Kết quả mong đợi: Trả về 3 gói tin thành công với địa chỉ IP 192.168.1.11.
ping -c 3 hbase-rs2
Kết quả mong đợi: Trả về 3 gói tin thành công với địa chỉ IP 192.168.1.12.
Thực hiện tương tự từ các node RegionServer ping về Master và ping lẫn nhau để đảm bảo tính hai chiều.
ping -c 3 hbase-master
Kết quả mong đợi: Trả về 3 gói tin thành công với địa chỉ IP 192.168.1.10.
Điều hướng series:
Mục lục: Series: Triển khai Database phân tán với Apache HBase trên Ubuntu 24.04
Phần 2: Triển khai Hadoop HDFS làm nền tảng lưu trữ cho HBase »