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 。。。。。。。

猜你喜欢

转载自www.cnblogs.com/gxc2015/p/8856260.html
今日推荐