本文是大数据系列第 35 篇,在上一篇单节点配置的基础上,将 HBase 配置分发到集群所有节点并完成 3 节点集群的启动与验证。

完整图文版(含截图):CSDN 原文 | 掘金

前置条件

  • 已完成 HBase 单节点配置(hbase-env.sh、hbase-site.xml、regionservers 文件)
  • 三台节点(h121、h122、h123)之间 SSH 免密登录已配置
  • 各节点环境变量 HBASE_HOMEPATH 已配置

节点角色规划

节点角色
h121HMaster + HRegionServer
h122HRegionServer
h123HRegionServer

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

该脚本依次启动:

  1. HMaster 进程(h121)
  2. 各节点的 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 客户端开发。