温馨提示×

centos hbase如何升级版本

小樊
38
2025-12-09 21:49:39
栏目: 智能运维

CentOS 上升级 HBase 的实操指南

一 升级前准备

  • 明确升级路径:确认当前与目标 HBase 版本,并核对与 HadoopZooKeeper 的兼容性;阅读目标版本的发行说明与重大变更。
  • 完整备份:备份 HBase 数据目录(如 HDFS 上的 hbase.rootdir)、本地 WAL/日志、以及 hbase-site.xml / hbase-env.sh / regionservers 等关键配置。
  • 环境检查:统一 JDK 版本,必要时在 hbase-env.sh 中更新 JAVA_HOME;准备回滚方案(保留旧目录与配置)。
  • 客户端策略:升级期间避免新旧客户端混用,待集群完全升级后再统一切换到新客户端。
  • 测试验证:在测试环境演练升级与回滚流程,覆盖创建表、写入与查询等关键操作。

二 标准升级步骤(适用于大多数版本)

  1. 停止集群
    在主节点执行:

    ${HBASE_HOME}/bin/stop-hbase.sh
    

    确认所有 HMaster/RegionServer 进程已退出。

  2. 下载并部署新版本

    # 下载
    wget https://hbase.apache.org/downloads.html  # 选择目标版本二进制包
    # 解压到目标目录(示例:/opt/hbase)
    tar -zxvf hbase-x.y.z-bin.tar.gz -C /opt
    mv /opt/hbase-x.y.z /opt/hbase-new
    # 备份旧版本
    mv /opt/hbase /opt/hbase-old
    # 软链或替换(二选一)
    ln -sfn /opt/hbase-new /opt/hbase
    # 或
    rm -rf /opt/hbase && mv /opt/hbase-new /opt/hbase
    

    保持目录结构与权限一致,便于无缝切换。

  3. 同步与调整配置

    • 合并差异:将旧版 conf/ 中的自定义项(如 hbase-site.xml、hbase-env.sh、regionservers)合并到新版,避免覆盖新增或变更的默认项。
    • 重点核对:
      • hbase.rootdir 指向正确的 HDFS 路径(确保 HDFS 可用)。
      • hbase.zookeeper.quorum、ZooKeeper 相关目录与会话参数。
      • JAVA_HOME 与新版本要求的 JDK 一致。
    • 如启用 HBase 自带 ZooKeeper,确认 HBASE_MANAGES_ZK 设置符合预期。
  4. 启动与验证

    ${HBASE_HOME}/bin/start-hbase.sh
    ${HBASE_HOME}/bin/hbase version
    ${HBASE_HOME}/bin/hbase shell -n <<<'status'
    

    观察 HMaster/RegionServer 日志无异常,Web UI 可正常访问,基本 DDL/DML 操作正常。

三 滚动升级与兼容性要点

  • 滚动升级(尽量减少停机):
    • 适用前提:目标版本明确支持滚动升级;逐台重启 RegionServer,利用 Region 迁移实现业务不中断。
    • 顺序建议:先 RegionServer,后 HMaster;升级期间禁止新旧客户端混用。
  • 兼容性检查清单:
    • Hadoop 版本匹配(HDFS 客户端/协议兼容)。
    • ZooKeeper 版本匹配(会话/ACL/特性变更)。
    • 如从 CDH 等发行版迁移,通常不支持跨大版本直接逐步升级,需按发行版指引整体规划。
  • 客户端一致性:升级完成并验证稳定后,统一发布新版本客户端。

四 常见问题与快速排查

  • HMaster 无法启动:检查 ZooKeeper 连通性与元数据一致性;必要时清理 logs/tmp/ 后重启;核对 hbase-site.xml 关键参数。
  • Region 无法上线:主机名变更导致,进入 HBase Shell 检查 hbase:meta,必要时修复分配后再重启。
  • 不一致修复:使用 hbck2/hbck 修复分配与元数据问题,例如:
    hbase hbck -fixAssignments <table>
    
  • 连接 ZooKeeper 失败:确认 ZooKeeper 集群健康,检查网络与超时配置。
  • 端口变化:留意新版本默认端口差异,必要时在 hbase-site.xml 显式设置。

五 回滚方案

  • 快速回滚:
    1. 停止新版本集群;2) 恢复原目录软链或二进制;3) 恢复 conf/ 与必要配置;4) 启动旧版本并验证数据与服务。
  • 数据回滚:如升级过程对 HDFS 元数据或存储格式有变更,优先基于备份恢复;无变更时直接回滚二进制与配置通常即可。

0