zoukankan      html  css  js  c++  java
  • 4.HBASE数据迁移方案(之snapshot):

    4.HBASE数据迁移方案:
      4.1 Import/Export
      4.2 distcp
      4.3 CopyTable
      4.4 snapshot

    快照方式迁移(以USER_info:user_log_info为例)
    1.先在源集群建立该表的快照
    hbase(main):003:0> snapshot "USER_INFO:user_log_info","user_log_info_snapshot"

    2.在源集群执行:
    sudo -u hdfs hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot user_log_info_snapshot -copy-to hdfs://slave.01.bigdata.prod.wgq:8020/hbase -overwrite
    -overwrite是假如目标集群有该快照,则覆盖掉;

    3.修改文件权限:
    sudo -u hdfs hdfs dfs -chown -R hbase:hbase /hbase/.hbase-snapshot
    sudo -u hdfs hdfs dfs -chown -R hbase:hdfs /hbase/archive
    sudo -u hdfs hdfs dfs -chmod -R 777 /hbase/archive

    4.在目标集群:


    创建对应表,表要一致
    create 'USER_INFO:user_log_info', {NAME => 'cf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

    首先要disable掉该表
    disable "USER_INFO:user_log_info"

    其次恢复快照:
    restore_snapshot 'user_log_info_snapshot'

    没报错enable该表:
    enable "USER_INFO:user_log_info"

    验证表可用性和两个集群表数据量是否一致:
    count 。。。。。。。

    总结:

    需要注意的是每种方案的可行性问题:

    1.是否要disable表,影响到业务的在线;

    2.跨集群,集群间是否可通信;

    3.每种方案的效率问题,稳定性问题,经常碰到一种方案(copyTable)执行到一半,报exception而挂断;

    4.每种方案是在源集群执行,还是在目标集群执行,对源/目标集群的资源影响;

  • 相关阅读:
    python列表作为默认参数的问题
    python 强制停止线程
    cProfile 分析python运行时间
    python global全局变量 模块通信问题
    ajax请求数据get、post
    vue中加载three.js全景图
    vue中加载three.js的gltf模型
    vue-cli2.x与vue-cli3.x的搭建
    cesium加载gltf模型
    vue/cli3引入cesium
  • 原文地址:https://www.cnblogs.com/gxc2015/p/8856260.html
Copyright © 2011-2022 走看看