场景
hbase数据迁移时我们需要统计迁移时的数据量,以确保迁移后的数据的完成,但是如果hbase表数据持续增加的话,迁移时无法统计出准确的数据量,此时我们使用快照的方式进行数据迁移,以确保迁移的数量可以和某一时间节点快照的数据量可以对应上。
快照原理
步骤
- 表快照生成,后面的是快照名称,注意快照名称不能包含表空间
snapshot 'nm:user','user_snapshot'
- 查看快照
hbase(main):008:0> list_snapshots
SNAPSHOT TABLE + CREATION TIME user_snapshot nm:user (2019-05-30 08:53:03 +0800)
1 row(s)
Took 0.0839 seconds
- 恢复到快照时数据
恢复后,会将数据恢复至快照时间点的数据,快照时间点之后的数据将会删除。
restore_snaphost 'user_snapshot'
- 根据快照我们生成新表(后续会介绍第二种方式不用clone_snapshot一个新表,直接使用快照导出)
clone_snapshot 'user_snapshot','nm:user_snapshot'
此时可以查看表 'nm:user_snapshot' 数据量
- ExportSnapshot迁移数据
- mappers map数量
- bandwidth 带宽限制
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot user_snapshot -copy-from hdfs://h1:8082/hbase -copy-to hdfs://h2:8082/hbase --mappers 11 -bandwidth 1024
表迁移参考:https://blog.csdn.net/zhangshenghang/article/details/82594143