在你的 3 台服务器(16 核、128GB 内存,1TB SSD 和 4TB SATA)上部署 HBase 集群 是一个良好的选择,特别适合需要快速随机读/写访问的场景。以下是详细的 HBase 集群安装和配置步骤。


1. HBase 集群规划

HBase 是一个分布式的 NoSQL 数据库,运行在 Hadoop HDFS 之上,通常包括以下组件:

  1. HMaster(Master 节点):负责管理 HBase 的元数据、分区分配和集群操作。
  2. RegionServer(Worker 节点):管理 HBase 表数据,处理客户端的读写请求。
  3. Zookeeper:用于分布式协调,管理 HBase 集群的元数据(HMaster 高可用、RegionServer 注册等)。
  4. HDFS:底层存储,HBase 使用 HDFS 存储数据。

角色规划

基于你的集群架构,可以进行如下规划:

这种配置可以实现 HBase 集群的基本功能,并提供分布式协调(通过 Zookeeper)。


2. 安装 HBase

以下是安装 HBase 的具体步骤。

2.1 前置准备

安装 Java

HBase 需要 Java 环境(建议使用 OpenJDK 11):

sudo apt update
sudo apt install openjdk-11-jdk -y

验证 Java 安装:

java -version

安装 Hadoop(HDFS)

HBase 依赖 Hadoop HDFS 作为底层存储,因此需要先部署 HDFS 集群(可以参考之前安装 Hadoop 的步骤)。确保 HDFS 已经在所有 3 台服务器上配置并运行。

启动 HDFS 服务:

start-dfs.sh

验证 HDFS 是否正常运行:

hdfs dfs -ls /


2.2 下载 HBase

从 Apache 官方网站下载 HBase:

wget https://downloads.apache.org/hbase/2.5.6/hbase-2.5.6-bin.tar.gz

解压文件并移动到 /opt 目录:

tar -xvzf hbase-2.5.6-bin.tar.gz
sudo mv hbase-2.5.6 /opt/hbase

将 HBase 添加到环境变量(可选):

echo "export HBASE_HOME=/opt/hbase" >> ~/.bashrc
echo "export PATH=\$PATH:\$HBASE_HOME/bin" >> ~/.bashrc
source ~/.bashrc

注意:以上步骤需要在所有 3 台服务器上执行。


2.3 配置 HBase

HBase 的配置文件位于 /opt/hbase/conf 目录下。

1. 配置 hbase-site.xml

编辑 HBase 的主配置文件 /opt/hbase/conf/hbase-site.xml

nano /opt/hbase/conf/hbase-site.xml

添加以下配置:

<configuration>
    <!-- HBase 根目录存储在 HDFS 上 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://server1_ip:9000/hbase</value>
    </property>

    <!-- Zookeeper 配置 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>server1_ip,server2_ip,server3_ip</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>

    <!-- HBase 的临时目录 -->
    <property>
        <name>hbase.tmp.dir</name>
        <value>/opt/hbase/tmp</value>
    </property>
</configuration>

说明

2. 配置 hbase-env.sh

编辑环境变量文件 /opt/hbase/conf/hbase-env.sh

nano /opt/hbase/conf/hbase-env.sh

确保以下内容正确:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HBASE_MANAGES_ZK=false  # 使用外部独立的 Zookeeper 集群

3. 配置 regionservers

编辑 RegionServer 配置文件 /opt/hbase/conf/regionservers

nano /opt/hbase/conf/regionservers

添加所有 RegionServer 节点的 IP 地址,每行一个:

server1_ip
server2_ip
server3_ip


2.4 配置 Zookeeper

HBase 依赖 Zookeeper 进行分布式协调,确保已在所有 3 台服务器上安装并配置 Zookeeper(可以参考之前 Kafka 的 Zookeeper 配置步骤)。

启动 Zookeeper:

/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties


2.5 启动 HBase

格式化 HBase 数据目录

在 HBase Master 节点(Server 1)上初始化 HBase 数据目录:

hdfs dfs -mkdir /hbase
hdfs dfs -chown hadoop:hadoop /hbase

启动 HBase 服务

在 Master 节点(Server 1)上启动 HBase:

start-hbase.sh

验证 HBase 服务

使用命令检查 HBase 服务状态:

jps

在 Master 节点上应该看到 HMaster,在 Worker 节点上应该看到 HRegionServer


3. 验证 HBase 集群

3.1 通过 HBase Shell 测试

在 HBase Master 节点上运行 HBase Shell:

hbase shell

在 HBase Shell 中执行以下命令测试集群:

# 创建一个表
create 'test_table', 'cf'

# 插入数据
put 'test_table', 'row1', 'cf:col1', 'value1'

# 查询数据
get 'test_table', 'row1'

# 列出所有表
list


3.2 Web UI 验证

HBase 提供了 Web 管理界面:

  1. HBase Master Web UIhttp://server1_ip:16010
    • 查看 HBase 集群状态、表信息等。
  2. RegionServer Web UIhttp://server_ip:16030
    • 查看每个 RegionServer 的运行状态。

4. 高可用配置(可选)

为了提高 HBase Master 的容错能力,可以配置 HBase Master 高可用(HA)。

4.1 配置 HBase HA

  1. hbase-site.xml 中添加以下配置:

    <property>
        <name>hbase.master.loadbalance.enabled</name>
        <value>true</value>
    </property>
    
    
  2. 部署多个 HMaster(例如在 Server 1 和 Server 2 上),但只有一个处于 Active 状态。


5. 磁盘存储规划

在你的服务器中有两块硬盘(1TB SSD 和 4TB SATA),可以按以下方式规划:

  1. 1TB SSD:用于 Zookeeper 数据(/data/zookeeper)和 HBase 的临时目录(/opt/hbase/tmp)。
  2. 4TB SATA:用于 HBase 的表数据(存储在 HDFS 中)。

确保在 hbase.tmp.dir 和 HDFS 配置中合理设置存储路径。


6. 总结

通过上述步骤,你可以成功在 3 台服务器上部署一个高性能的 HBase 集群:

  1. HBase Master:运行在 Server 1。
  2. RegionServer:运行在所有节点。
  3. Zookeeper:分布式部署在所有节点。
  4. 验证集群:通过 HBase Shell 和 Web UI 测试集群是否正常工作。

这种部署方式适合生产环境,并具有良好的性能和容错能力。