zoukankan      html  css  js  c++  java
  • hbase之snapshot方式数据同步 hbase数据迁移

    前提说明:

    Hadoop: 3.0.0-cdh6.3.2

    hbase : 2.1.0-cdh6.3.2

    cluster01 的hdfs连接: 172.18.26.6:8020

    cluster02 的hdfs连接:172.18.10.90:8020

    cluster01 与 cluster02 网络端口相通

    cluster01  172.18.26.6  备份机器

    cluster02  172.18.10.90 恢复机器

    snapshot备份默认已开启

    cluster01  cluster02操作的时候最好用hbase用户操作 su - hbase

    开始

    我的方法是单个hbase的table进行snapshot备份,然后再传输到目标机器

    1.snapshot备份(在cluster01 备份)

    [root@cdh-master01 ~]# hbase shell

    hbase(main):001:0>snapshot 'device','device_snapshot01'      #‘device’是table的名字,‘device_snapshot01’是备份快照名称

    hbase(main):003:0> list_snapshots     #查看快照

    SNAPSHOT                                          TABLE + CREATION TIME
    device_snapshot01                               device (2020-12-18 19:07:18 +0800)

    此时在hdfs路径下可以看到快照了

    [root@cdh-master01 ~]#hadoop fs -ls hdfs://172.18.26.6:8020/hbase/.hbase-snapshot/                  #注意,我的hbase.rootdir是 /hbase,如果是别的请替换

    drwxr-xr-x   - hbase hbase          0 2020-12-18 19:07 hdfs://172.18.26.6:8020/hbase/.hbase-snapshot/device_snapshot01

    2.传输快照

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot
    -snapshot device_snapshot01
    -copy-from hdfs://172.18.26.6:8020/hbase
    -copy-to hdfs://172.18.10.90:8020/opt/hbase
    -mappers 16
    -bandwidth 1024       #注意我的目标hbase的rootdir是不一样的

    3. 恢复(在cluster02进行)

    方式1:会覆盖原表device

    hbase shell

    disable device

    restore_snapshot 'device_snapshot01'

    enable device

    方式2:恢复到新表device_new

    clone_snapshot 'device_snapshot01','device_new'

    4. 遇到问题

    4.1 恢复的时候,卡死不动,等很久就报错

    我发现是磁盘满了,删除没用数据请参考另一篇文章

    4.2 提示权限问题

    那就修改权限:

    hadoop fs -chown -R hbase:hbase hdfs://172.18.10.90:8020/opt/hbase/archive/data/default/device_info/

    hadoop fs -chmod -R 755 hdfs://172.18.10.90:8020/opt/hbase/archive/data/default/device_info/

  • 相关阅读:
    【Win10开发】相对布局——RelativePanel控件
    【Win10开发】关于AutoSuggestBox
    【Win10开发】自定义标题栏
    线上服务器CPU100%排查
    Rest接口单元测试
    hibernate validator参数校验&自定义校验注解
    JsonView视图
    跨域(SpringBoot)
    Mybatis的分支选择和In循环
    CentOS6.5使用yum安装mysql
  • 原文地址:https://www.cnblogs.com/thirteen-yang/p/14160317.html
Copyright © 2011-2022 走看看