在你的 3 台服务器(16 核、128GB 内存,1TB SSD 和 4TB SATA)上部署 HBase 集群 是一个良好的选择,特别适合需要快速随机读/写访问的场景。以下是详细的 HBase 集群安装和配置步骤。
HBase 是一个分布式的 NoSQL 数据库,运行在 Hadoop HDFS 之上,通常包括以下组件:
基于你的集群架构,可以进行如下规划:
这种配置可以实现 HBase 集群的基本功能,并提供分布式协调(通过 Zookeeper)。
以下是安装 HBase 的具体步骤。
HBase 需要 Java 环境(建议使用 OpenJDK 11):
sudo apt update
sudo apt install openjdk-11-jdk -y
验证 Java 安装:
java -version
HBase 依赖 Hadoop HDFS 作为底层存储,因此需要先部署 HDFS 集群(可以参考之前安装 Hadoop 的步骤)。确保 HDFS 已经在所有 3 台服务器上配置并运行。
启动 HDFS 服务:
start-dfs.sh
验证 HDFS 是否正常运行:
hdfs dfs -ls /
从 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 台服务器上执行。
HBase 的配置文件位于 /opt/hbase/conf
目录下。
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>
说明:
hbase.rootdir
:指定 HBase 在 HDFS 上存储数据的位置。hbase.zookeeper.quorum
:配置 Zookeeper 集群的节点列表。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 集群
regionservers
编辑 RegionServer 配置文件 /opt/hbase/conf/regionservers
:
nano /opt/hbase/conf/regionservers
添加所有 RegionServer 节点的 IP 地址,每行一个:
server1_ip
server2_ip
server3_ip
HBase 依赖 Zookeeper 进行分布式协调,确保已在所有 3 台服务器上安装并配置 Zookeeper(可以参考之前 Kafka 的 Zookeeper 配置步骤)。
启动 Zookeeper:
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
在 HBase Master 节点(Server 1)上初始化 HBase 数据目录:
hdfs dfs -mkdir /hbase
hdfs dfs -chown hadoop:hadoop /hbase
在 Master 节点(Server 1)上启动 HBase:
start-hbase.sh
使用命令检查 HBase 服务状态:
jps
在 Master 节点上应该看到 HMaster
,在 Worker 节点上应该看到 HRegionServer
。
在 HBase Master 节点上运行 HBase Shell:
hbase shell
在 HBase Shell 中执行以下命令测试集群:
# 创建一个表
create 'test_table', 'cf'
# 插入数据
put 'test_table', 'row1', 'cf:col1', 'value1'
# 查询数据
get 'test_table', 'row1'
# 列出所有表
list
HBase 提供了 Web 管理界面:
http://server1_ip:16010
http://server_ip:16030
为了提高 HBase Master 的容错能力,可以配置 HBase Master 高可用(HA)。
在 hbase-site.xml
中添加以下配置:
<property>
<name>hbase.master.loadbalance.enabled</name>
<value>true</value>
</property>
部署多个 HMaster(例如在 Server 1 和 Server 2 上),但只有一个处于 Active 状态。
在你的服务器中有两块硬盘(1TB SSD 和 4TB SATA),可以按以下方式规划:
/data/zookeeper
)和 HBase 的临时目录(/opt/hbase/tmp
)。确保在 hbase.tmp.dir
和 HDFS 配置中合理设置存储路径。
通过上述步骤,你可以成功在 3 台服务器上部署一个高性能的 HBase 集群:
这种部署方式适合生产环境,并具有良好的性能和容错能力。