美文网首页
Hbase集群恢复

Hbase集群恢复

作者: david9 | 来源:发表于2020-11-19 15:14 被阅读0次

    问题

    HMaster启动报错,查看日志,发现有类似错误,猜测hbase的元数据损坏导致

    2020-11-19 13:30:21,578 WARN [master/td-ubuntu:16000:becomeActiveMaster] master.HMaster: hbase:namespace,,1597675221785.30d68ed750aa095b5172c0dd1bfe322a. is NOT online; state={30d68ed750aa095b5172c0dd1bfe322a state=OPEN, ts=1605763821379, server=td-ubuntu,16020,1605615663447}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined.

    方案:

    停止hbase相关进程,执行

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

    备份hbase中原始数据(以Hbase单机部署为例)

    cp -r ${hbase.rootdir}/data/data/default  ~/default_bak
    

    注意:这里只备份了default namespace,如果存在其他namespace,需要一并备份

    清空zookeeper中hbase元数据,登录zookeeper,执行rmr /hbase

    [zk: localhost:2181(CONNECTED) 0] ls /
    [cluster, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, device-job, consumers, latest_producer_id_block, config, hbase]
    [zk: localhost:2181(CONNECTED) 1] rmr /hbase
    

    清空hbase数据目录

    rm -rf ${hbase.rootdir}/data/*
    

    启动hbase

    ${HBASE_ROOT}/bin/start-hbase.sh
    

    至此,初始化了一个空的hbase
    再次关闭hbase,执行

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

    将备份的数据拷贝到空hbase的数据目录下

    cp -r ~/default_bak/* ${hbase.rootdir}/data/data/default
    

    将WALs日志拷贝到空hbase的WALs目录下(如再启动后提示WALs相关错误,此步骤可以忽略,但可能会丢失部分数据)

    cp -r ~/default_bak/WALs/YOUR_HOSTNAME,160020,YOUR_STARTCODE/* ${hbase.rootdir}/data/WALs/YOUR_HOSTNAME,160020,YOUR_STARTCODE/ 
    

    再次启动hbase

    ${HBASE_ROOT}/bin/start-hbase.sh
    

    下载 HBase Operator Tools,解压得到hbase-hbck2-x.y.z.jar
    执行region信息修复(以opentsdb表为例)

    ${HBASE_ROOT}/bin/hbase hbck -j ./hbase-hbck2-1.0.0.jar addFsRegionsMissingInMeta default:tsdb
    ${HBASE_ROOT}/bin/hbase hbck -j ./hbase-hbck2-1.0.0.jar addFsRegionsMissingInMeta default:tsdb-meta
    ${HBASE_ROOT}/bin/hbase hbck -j ./hbase-hbck2-1.0.0.jar addFsRegionsMissingInMeta default:tsdb-tree
    ${HBASE_ROOT}/bin/hbase hbck -j ./hbase-hbck2-1.0.0.jar addFsRegionsMissingInMeta default:tsdb-uid
    

    再次重启hbase,并在hbase shell中对以上表执行disable && enable操作

    相关文章

      网友评论

          本文标题:Hbase集群恢复

          本文链接:https://www.haomeiwen.com/subject/qjfliktx.html