HBase部署与启动全指南
使用的版本为2.2.7
HBase 的部署模式分为单机模式(Standalone)和集群模式(Distributed),本文将详细介绍两种模式的部署步骤、配置要点及常见问题解决方案,帮助读者快速搭建 HBase 环境。
单机模式部署
单机模式适合开发测试环境,部署简单,主要用于功能验证和学习。
环境准备
- Java 环境:确保已安装 JDK 8+,并配置
JAVA_HOME
环境变量。 - HDFS 依赖:单机模式下 HBase 可直接使用本地文件系统,但若配置
hbase.rootdir
为 HDFS 路径(如示例),需先启动 Hadoop。
配置文件修改
hbase-env.sh
配置 JDK 路径,关闭 HBase 内置 ZooKeeper(使用独立 ZooKeeper):
1 | export JAVA_HOME=/usr/1.8 # 替换为实际 JDK 路径 |
hbase-site.xml
核心配置如下:
1 | <configuration> |
启动与验证
启动顺序
1 | 若使用 HDFS,先启动 Hadoop |
访问 Web UI
通过浏览器访问 http://localhost:16010
,查看 HBase 管理界面(仅 HMaster 节点提供)。
进入 HBase Shell
1 | bin/hbase shell |
集群模式部署
集群模式适合生产环境,需多台服务器协同工作,提供高可用性和水平扩展能力。
环境准备
- 服务器规划:建议至少 3 台服务器(1 个 Master,2 个 RegionServer),确保网络互通。
- ZooKeeper 集群:需提前部署 ZooKeeper 集群(推荐奇数节点,如 3/5 台)。
- HDFS 集群:HBase 依赖 HDFS 存储数据,需先部署 HDFS 并确保正常运行。
配置文件修改
hbase-env.sh
1 | export JAVA_HOME=/usr/1.8 # 所有节点 JDK 路径需一致 |
hbase-site.xml
核心配置如下:
1 | <configuration> |
regionservers 文件
指定所有 RegionServer 节点的主机名,每行一个:
1 | slave1 |
backup-masters 文件(可选)
指定备份 Master 节点(用于高可用):
1 | backup1 |
同步配置与分发
将配置好的 HBase 目录同步到所有节点:
1 | scp -r /path/to/hbase user@slave1:/path/to/ |
启动与验证
启动顺序
1 | 1. 启动 ZooKeeper 集群(所有 ZooKeeper 节点) |
访问 Web UI
- 主 Master 管理界面:
http://master:16010
- RegionServer 状态页面:
http://regionserver:16030
常见问题与解决方案
1. 启动失败:端口被占用
原因:HBase 默认端口(如 16000/16010/16020 等)被其他进程占用。
解决:修改hbase-site.xml中的端口配置:
1
2
3
4<property>
<name>hbase.master.port</name>
<value>16001</value> <!-- 修改为未被占用的端口 -->
</property>
2. 集群节点无法通信
- 原因:防火墙未开放端口或主机名解析失败。
- 解决:
- 关闭防火墙或开放 HBase 所需端口(如 16000-16030);
- 确保所有节点
/etc/hosts
文件包含完整的主机名与 IP 映射。
3. HDFS 连接失败
- 原因:HDFS 配置错误或未启动。
- 解决:
- 检查
hbase.rootdir
是否与 HDFS 实际地址一致; - 执行
hdfs dfs -ls /
验证 HDFS 可正常访问。
- 检查
4. ZooKeeper 连接异常
- 原因:ZooKeeper 集群未启动或配置错误。
- 解决:
- 检查 ZooKeeper 进程状态(
zkServer.sh status
); - 验证
hbase.zookeeper.quorum
配置是否正确。
- 检查 ZooKeeper 进程状态(
停止集群
停止 HBase 集群
在主 Master 节点执行:
1 | bin/stop-hbase.sh |
停止 HDFS 集群
在 NameNode 节点执行:
1 | stop-dfs.sh |
停止 ZooKeeper 集群
在所有 ZooKeeper 节点执行:
1 | zkServer.sh stop |
v1.3.10