内容纲要
概要说明
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示hbase 表数据通过使用snapshot快照的方式迁移的步骤。
使用该方法时源集群和目标集群,如果是开安全的情况,需要先配互信,如果是没有开全的情况,可以直接使用。
该方法在hbase同版本、不同版本之间经测试都可以迁移数据,但最好是在同版本之间迁移。
如果hbase表中有lob类型的字段,不能使用该方法迁移数据。
详细说明
本案例介绍使用 snapshot快照 的方式导入导出 hbase 数据,该方法只需要3步:
- 在源集群上对要迁移的 hbase 表生成快照
- 将生成的快照文件copy 到目标集群HDFS的 /hyperbase1 路径下
- 确保目标集群处于在线状态,在目标集群使用迁移的快照建表
注意:
- 以下操作需要准备好TDH客户端,参考:准备TDH客户端环境
1、在源集群上对要迁移的 hbase 表生成快照
-
下线hbase表
disable 'hbase_snap'
-
生成快照
snapshot 'hbase_snap','snap_qianyi'
2、将生成的快照文件copy 到目标集群HDFS的 /hyperbase1 路径下
-
将源集群上生成的 snap_qianyi 快照copy到目标集群的hdfs,上传到的hdfs路径是hyperbase的
根目录 /hyperbase1
。
下面命令可以通过参数-mappers
指定 mapper数量,加快MapReduce任务。hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snap_qianyi -copy-to hdfs://172.22.33.1:8020/hyperbase1/ -mappers 20
-
在目标集群hdfs上检查copy的快照文件
3、确保目标集群处于在线状态,在目标集群使用迁移的快照建表
-
利用snapshot在hbase shell中建表
clone_snapshot 'snap_qianyi','hbase_snap_qy'
-
检查建表是否成功