在 Debian 上升级 HBase 的实操指南
一 升级前准备
- 明确升级路径:HBase 升级通常要求按小版本逐级升级,不要跨多个主版本;例如从0.96→0.98→1.0。升级顺序建议为先升级服务端,再升级客户端。同时确认与底层组件的兼容性(Hadoop、ZooKeeper、JDK)。
- 完整备份:对 HBase 在 HDFS 的数据与关键配置做备份,可用 distcp 或文件系统拷贝;示例:
hadoop distcp /hbase /hbase-pre-upgrade-backup。
- 配置与 JAR 梳理:保留并对比旧版的 hbase-site.xml、hbase-env.sh、regionservers 等;如使用 Phoenix,需同步升级对应版本的 JAR 到新 HBase 的 lib/。
- 环境与依赖:统一 JDK 版本(建议 JDK 8+),校准 HADOOP_HOME/HBASE_HOME,检查 DNS/NTP 与 ulimit -n 等系统参数。
- 回滚预案:准备回滚步骤(HDFS 回滚、ZooKeeper 清理、HBase 版本回退),回滚前确保有可用的备份与操作步骤清单。
二 标准升级步骤(适用于 Debian 二进制安装)
- 下载并解压新版本 HBase 到各节点(保持目录结构一致)。
- 同步配置:将旧版的 conf/ 下必要文件拷入新版(如 hbase-site.xml、hbase-env.sh、regionservers),并拷贝 core-site.xml、hdfs-site.xml 到新版 conf/;如使用 Phoenix,将对应 JAR 放入新版 lib/。
- 逐节点替换二进制:先停旧进程,再用新目录替换旧目录(建议先备份旧目录)。
- 停止集群:在 HMaster 节点执行
bin/stop-hbase.sh,确认 HMaster/RegionServer 全部退出。
- 执行升级工具(如该版本提供):
bin/hbase upgrade -check(检查)与 bin/hbase upgrade -execute(执行)。
- 启动新版本:在 HMaster 节点执行
bin/start-hbase.sh,观察 Master/RegionServer 日志是否报错。
- 版本与连通性验证:执行
hbase version 与 echo "status" | hbase shell 检查集群状态与表可用性。
三 升级后验证与回滚
- 验证要点:
- 运行
hbase version 确认二进制版本;
- 在 HBase Shell 执行
status 'detailed' 与 list、scan 关键表,确认数据可读写;
- 抽查 WAL/Compaction/Flush 是否正常,观察 GC/延迟/错误日志。
- 回滚步骤(示例):
- 停止 HBase;
- 执行 HDFS 与 ZooKeeper 的回滚/降级;
- 将 HBase 安装目录切回旧版本;
- 恢复 HDFS 上的 HBase 数据目录(如
hdfs dfs -mv /hbase /hbase-upgrade-rollback; hdfs dfs -mv /hbase-pre-upgrade-backup /hbase);
- 清理 ZooKeeper 中 /hbase 节点(注意:会永久删除复制链路信息);
- 启动 HBase 并逐项验证数据。
四 常见注意事项与排错要点
- 兼容性优先:确认 HBase 与 Hadoop/ZooKeeper/JDK 的版本矩阵;若底层 Hadoop 也需升级,通常先升级 Hadoop,再升级 HBase。
- 客户端一致性:升级期间避免新旧客户端混用;待集群稳定后再统一发布新客户端。
- 配置与目录:核对 hbase.rootdir、hbase.zookeeper.quorum、dfs.nameservices 等关键项;清理 tmp/logs 残留目录,避免启动异常。
- 端口与防火墙:确认 16000/16010/2181/16020/16030 等端口在各节点与防火墙策略中已放行。
- 升级工具与插件:仅在官方说明支持的情况下使用
hbase upgrade;如使用 Phoenix、Splice Machine 等插件,需同步升级其版本与 JAR 放置路径。