Triển khai HBase phân tán tích hợp với Hadoop và ZooKeeper

1. Tải và giải nén bộ cài đặt

Trước khi tiến hành, đảm bảo cụm ZooKeeper đã hoạt động ổn định. Thực hiện tải mã nguồn HBase và giải nén vào thư mục làm việc:

mkdir -p /data/bigdata && cd /data/bigdata
curl -O https://archive.apache.org/dist/hbase/2.1.10/hbase-2.1.10-bin.tar.gz
tar -xzf hbase-2.1.10-bin.tar.gz -C /data/bigdata/
mv hbase-2.1.10 hbase-cluster
cd hbase-cluster

2. Thiết lập biến môi trường hệ thống

Tạo tệp cấu hình riêng trong thư mục profile.d để quản lý đường dẫn gọn gàng hơn:

sudo tee /etc/profile.d/hbase_env.sh > /dev/null <<EOF
export HBASE_INSTALL_DIR=/data/bigdata/hbase-cluster
export PATH=\$PATH:\$HBASE_INSTALL_DIR/bin
EOF
source /etc/profile.d/hbase_env.sh

3. Tùy chỉnh các tệp cấu hình cốt lõi

Di chuyển vào thư mục conf/ để điều chỉnh các tham số vận hành.

3.1. Điều chỉnh hbase-env.sh

cd conf/
sed -i 's|^# export JAVA_HOME=.*|export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64|' hbase-env.sh
echo 'export HBASE_LOG_DIR=${HBASE_INSTALL_DIR}/storage/logs' >> hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >> hbase-env.sh

Tham số HBASE_MANAGES_ZK=false báo cho HBase sử dụng cụm ZooKeeper độc lập thay vì phiên bản nhúng sẵn.

3.2. Khai báo danh sách RegionServer

Chỉnh sửa tệp regionservers, xóa giá trị localhost và thay bằng danh sách các node worker:

node-primary
node-secondary
node-tertiary

3.3. Cấu hình hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://node-primary:8020/hbase-data</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node-primary,node-secondary,node-tertiary</value>
  </property>
  <property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/data/bigdata/zookeeper/storage</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
</configuration>

4. Phân phối cấu hình sang các node còn lại

Sử dụng vòng lặp để đồng bộ thư mục cài đặt và biến môi trường đến các máy thành viên:

for node in node-secondary node-tertiary; do
  rsync -avz --delete /data/bigdata/hbase-cluster/ $node:/data/bigdata/hbase-cluster/
  scp /etc/profile.d/hbase_env.sh $node:/etc/profile.d/
  ssh $node "source /etc/profile.d/hbase_env.sh"
done

5. Vận hành dịch vụ và xác minh trạng thái

Kích hoạt cụm HBase từ node master:

bin/start-hbase.sh

Kiểm tra giao diện quản trị qua trình duyệt:

  • Master UI: http://node-primary:16010/master-status
  • RegionServer UI: http://node-secondary:16030/rs-status

6. Thao tác dữ liệu mẫu qua HBase Shell

Kết nối vào CLI và thực hiện các lệnh khởi tạo bảng cùng ghi dữ liệu thử nghiệm:

hbase shell
create 'inventory', {NAME => 'details', VERSIONS => 2, COMPRESSION => 'SNAPPY'}
put 'inventory', 'item-001', 'details:sku', 'A1B2C3'
put 'inventory', 'item-001', 'details:price', '150000'
put 'inventory', 'item-002', 'details:sku', 'X9Y8Z7'
put 'inventory', 'item-002', 'details:price', '230000'
scan 'inventory'

7. Kích hoạt giao diện Thrift cho ứng dụng bên ngoài

Để các ngôn ngữ lập trình như Python có thể tương tác với HBase, cần khởi động tiến trình Thrift server:

hbase-daemon.sh start thrift -p 9090

Thẻ: hbase hadoop zookeeper thrift hdfs

Đăng vào ngày 24 tháng 8 lúc 05:09