美文网首页
Hbase跨集群数据迁移-快照方式

Hbase跨集群数据迁移-快照方式

作者: 粮忆雨 | 来源:发表于2019-07-17 19:20 被阅读0次

    说明:原集群为散装集群,hbase版本为1.1.1,hadoop2.7.2;目标集群通过CDH5搭建,hbase版本为1.2.0,hadoop2.6.0。由于业务需要原集群不能停,目前数据基本在hbase上。所以计划使用hbase快照使用数据迁移。

    1、原集群 hbase shell中创建快照

    #查看已有快照
    list_snapshots
    #创建快照
    snapshot 'test_meter_data','test_meter_data-20190424'
    #如果快照创建有问题,可以先删除,用delete_snapshot命令
    delete_snapshot 'xxxxxx'
    

    2、两集群安全组相互开放端口(内网ip和外网ip都要)[阿里云服务器]

    3、将root用户添加到supergroup组(已有忽略)

    groupadd supergroup
    usermod -a -G supergroup root
    

    4、迁移数据

    拉取方式(推荐:由于旧集群资源不足):在目标集群执行
    注意:在本地执行的时不要使用被机器的外网ip。
    语法:

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
    -snapshot snapshot_src_table \ 
    -copy-from hdfs://xxxx:9000/src-hbase-root-dir/hbase \
    -copy-to hdfs://xxxx:9000/dst-hbase-root-dir/hbase \
    -mappers 20 \
    -bandwidth 20
    

    推送方式:在原集群执行

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_meter_data-20190424 -copy-to 
    hdfs://xxxx:8020/hbase -mappers 5 -bandwidth 10 -overwrite
    

    目标集群下:

    5、修改权限(重要,否则重启habse失败)

    hadoop fs -chown -R hbase:hbase /hbase/
    

    6、目标集群创建新表

    6.1 根据旧集群hbase表的describe信息,在新集群创建同样的hbase表(必须同名)

    create 'test_meter_data', {NAME => 'f1',COMPRESSION => 'SNAPPY'}, { NUMREGIONS => 3, SPLITALGO => 'HexStringSplit'}
    

    6.2 使用快照还原表
    进入目标集群hbase shell

    #先禁用表
    disable 'test_meter_data'
    restore_snapshot 'test_meter_data-20190424'
    #等待COMPLETE完成再启用
    enable 'test_meter_data'
    

    6.3 通过count命令校验数据

    count 'test_meter_data'
    

    相关文章

      网友评论

          本文标题:Hbase跨集群数据迁移-快照方式

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