**
    一、停止regionserver进程的自启脚本
    在192.168.96.1 ndka0102主机上修改文件,
    vim /home/ocdp/manager/maintenance/hbase/killwailkingdead.sh,在脚本的第二行添加exit
    重建hbase集群的meta - 图1

    再同步到其它主机
    在96.1主机用ocdp用户先cd到家目录,再执行以下命令(先输入for再按 PgUp键就可以从history中找出历史记录)就可以把文件同步到其它主机
    重建hbase集群的meta - 图2

    二.准备恢复meta需要用的脚本和jar包
    在192.168.96.1主机的/home/ocdp/manager/maintenance/hbase_repair目录下,mkdir一个新目录(举例:1010),然后把0915目录下的所有文件都拷贝到新目录。

    三、导出hbsae所有表的表名
    使用hbase shell的list命令导出(list出来之后需要去掉namespace名字,只保留表名)
    hbase shell <<< list > hbase.list
    也可以从hdfs的目录导出所有表名
    hdfs dfs -fs hdfs://ndkns1 /apps/hbase/data/data/cloud > hbase.list
    hdfs dfs -fs hdfs://ndkns1 /apps/hbase/data/data/idc > hbase.list

    四.修改hbase的配置
    在ambari中,修改hbase的配置zookeeper.znode.parent,比如修改成/hbase-secure-20201010

    五.修改文件
    在192.168.96.1的/home/ocdp/manager/maintenance/hbase_repair/1010/目录下,

    修改configuarion.properties
    重建hbase集群的meta - 图3


    五.停掉hbase集群

    六.mv hbase的data数据
    挪hbase对应的hdfs目录
    Mv hbase 对应的hdfs目录

    重建hbase集群的meta - 图4


    ls一下看看还有没有/apps/hbase/data

    七.启动hbase集群

    八.创建namespace

    1. 在hbase shell创建需要修复表所在的表空间
    a. create_namespace “
    b. 示例: create_namespace ‘cloud’; create_namespace ‘idc’

    2. 设置命名空间所在的HDFS目录为 RS-10-2-1024k
    a. hdfs ec -setPolicy -policy RS-10-2-1024k -path

    重建hbase集群的meta - 图5


    九.迁移hdfs上hbase的数据

    迁移cloud和idc的数据
    迁移cloud的数据时先打开DEBUG
    重建hbase集群的meta - 图6


    十.修复meta
    启动修复脚本
    重建hbase集群的meta - 图7

    十一.观察修复进度
    生成的nohup.out文件不再变化时就是修复完成了
    重建hbase集群的meta - 图8

    十二.修复完之后重启hbase集群

    十三.把新的hbase-site.xml文件发给应用侧
    把新的hbase-site.xml文件放到172.30.190.132上的/tmp/目录下,用udpi用户,密码NoKiA@#2019
    十四.把regionserver自动启动脚本还原

    十五.删除zk中老的数据(刚用完的这个不要删除,删除更老的数据)
    到hbase master所在节点,用hbase的keytab hbase.service.keytab认证,再登录zk删除zk中的旧数据

    重建hbase集群的meta - 图9