本文是大数据系列第 35 篇,在上一篇单节点配置的基础上,将 HBase 配置分发到集群所有节点并完成 3 节点集群的启动与验证。
前置条件
- 已完成 HBase 单节点配置(hbase-env.sh、hbase-site.xml、regionservers 文件)
- 三台节点(h121、h122、h123)之间 SSH 免密登录已配置
- 各节点环境变量
HBASE_HOME和PATH已配置
节点角色规划
| 节点 | 角色 |
|---|---|
| h121 | HMaster + HRegionServer |
| h122 | HRegionServer |
| h123 | HRegionServer |
h121 作为主节点同时承担 Master 和 RegionServer 角色,在资源充裕时生产环境建议将 Master 独立部署。
分发配置到集群节点
在 h121 上使用 rsync-script 将 HBase 安装目录同步到其他节点:
# 同步 hbase-1.3.1 目录到 h122 和 h123
rsync-script hbase-1.3.1
rsync-script 是集群统一分发脚本(封装了 rsync),将 /opt/servers/hbase-1.3.1 完整同步到 h122 和 h123 的相同路径。
如未使用自定义脚本,也可手动执行:
rsync -avz /opt/servers/hbase-1.3.1 h122:/opt/servers/
rsync -avz /opt/servers/hbase-1.3.1 h123:/opt/servers/
同步完成后,在 h122 和 h123 上验证环境变量是否生效:
# 在 h122、h123 上分别执行
source /etc/profile
hbase version
启动集群
所有配置就绪后,在 h121 主节点上执行一键启动脚本:
start-hbase.sh
该脚本依次启动:
- HMaster 进程(h121)
- 各节点的 HRegionServer 进程(h121、h122、h123)
验证集群状态
方式一:进程检查
在各节点使用 jps 查看进程:
# h121 预期输出(含 HMaster)
HMaster
HRegionServer
# h122、h123 预期输出
HRegionServer
方式二:Web UI
访问 HBase Master Web 界面:
http://h121.wzk.icu:16010/master-status
界面中可以看到:
- 集群状态(Active Master)
- 在线 RegionServer 数量(应为 3)
- Region 数量和负载分布
- HBase 版本信息
方式三:HBase Shell
在任意节点进入交互式 Shell:
hbase shell
执行基本命令验证:
# 查看帮助
help
# 列出所有表(新集群为空列表)
list
# 查看集群状态
status
# 查看 HBase 版本
version
list 返回空结果(0 row(s) in X.XXXX seconds)说明集群正常运行,只是尚未创建业务表。
停止集群
stop-hbase.sh
常见问题排查
RegionServer 启动后立即退出:检查各节点 /opt/servers/hbase-1.3.1/logs/ 下的 RegionServer 日志,常见原因是 JAVA_HOME 路径不一致或主机名解析失败。
Web UI 无法访问:确认防火墙已开放 16010 端口,或检查 HMaster 是否成功启动(jps 查看)。
ZooKeeper 连接失败:确认 ZooKeeper 集群在 HBase 启动前已运行,hbase-site.xml 中的 ZooKeeper 地址与实际部署一致。
节点时钟不同步:HBase 对各节点时钟差敏感,建议配置 NTP 确保各节点时间偏差在 10 秒以内。
小结
本篇完成了 HBase 3 节点集群的分发、启动和验证。核心要点是各节点配置必须完全一致,通过 rsync 分发是保证一致性的最可靠方式。至此,Hadoop + ZooKeeper + HBase 的大数据存储栈已完整搭建,后续将进入 HBase DDL/DML 操作和 Java 客户端开发。