相关链接:
Hyperbase 表导入导出之离线迁移
Hyperbase表导入导出之export/import
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示HBase表数据通过使用snapshot快照的方式迁移的步骤。
1. 迁出集群为TDH社区版
2. 迁入集群为TDH社区开发版
3. 两集群均未开启Kerberos安全
Tips:若两个集群开启Kerberos安全,则需要配置互信,可参考《TDH集群配置互信流程》
本案例介绍使用 snapshot快照的方式导入导出 HBase表数据,该方法流程分为3步:
1. 在源集群上对要迁移的 hbase 表生成快照
2. 将生成的快照文件copy 到目标集群HDFS的 /hyperbase1 路径下
3. 确保目标集群处于在线状态,在目标集群使用迁移的快照建表
注意:以下操作需准备好TDH客户端。
启动TDH Client,用hbase shell命令进入Hyperbase命令行。
source /root/TDH-Client/init.sh // 执行init.sh脚本,启动TDH Client
hbase shell //进入命令行
本Demo建表语句如下:
create 'test','f1','f2'
put 'test', 'r1', 'f1:c1', 'value1'
put 'test', 'r1', 'f1:c2', 'value2'
put 'test', 'r1', 'f1:c3', 'value3'
put 'test', 'r2', 'f1:c1', 'value4'
put 'test', 'r2', 'f1:c2', 'value5'
put 'test', 'r2', 'f1:c3', 'value6'
snapshot 'table_name','snapshot_name' //生成快照
list_snapshots //查看快照
将生成的快照文件copy到目标集群HDFS的/hyperbase1路径下
命令参考:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snapshot_name' -copy-to hdfs://{目标集群IP}:8020/hyperbase1/ -mappers 16
迁移成功,前往目标集群验证快照文件。
TIP:
1. 迁移需要使用hbase用户,若使用root用户执行会提醒权限受限。如下图所示:
执行export HADOOP_USER_NAME=hbase,切换hbase用户可解决该问题。
2. 若迁移过程中出现端口相关报错。如下所示:
需在Manager界面Yarn服务页面修改“yarn.nodemanager.resource.memory-mb”的值,将1024修改为8192,配置服务后重启Yarn服务。顺利解决报错,完成迁移。
在目标集群的hbase shell中,list_snapshots查看原表的snapshot是否迁移成功
list_snapshots
在目标集群通过clone_snapshot命令,恢复表(表名称可以和原表不同)
clone_snapshot 'snapshot_name','new_table_name'
【注】:这一步骤不做也可以进行查表,但由于ExportSnapshot 操作主要是通过MR job 直接拷贝HDFS文件方式,最终目标集群上线的region的locality水平无法预估,所以强烈建议做这一步提升读性能
major_compact 'new_table_name'
检查建表成功,至此HBase表已完成迁移。
相关链接:
Hyperbase 表导入导出之离线迁移
Hyperbase表导入导出之export/import
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示HBase表数据通过使用snapshot快照的方式迁移的步骤。
1. 迁出集群为TDH社区版
2. 迁入集群为TDH社区开发版
3. 两集群均未开启Kerberos安全
Tips:若两个集群开启Kerberos安全,则需要配置互信,可参考《TDH集群配置互信流程》
本案例介绍使用 snapshot快照的方式导入导出 HBase表数据,该方法流程分为3步:
1. 在源集群上对要迁移的 hbase 表生成快照
2. 将生成的快照文件copy 到目标集群HDFS的 /hyperbase1 路径下
3. 确保目标集群处于在线状态,在目标集群使用迁移的快照建表
注意:以下操作需准备好TDH客户端。
启动TDH Client,用hbase shell命令进入Hyperbase命令行。
source /root/TDH-Client/init.sh // 执行init.sh脚本,启动TDH Client
hbase shell //进入命令行
本Demo建表语句如下:
create 'test','f1','f2'
put 'test', 'r1', 'f1:c1', 'value1'
put 'test', 'r1', 'f1:c2', 'value2'
put 'test', 'r1', 'f1:c3', 'value3'
put 'test', 'r2', 'f1:c1', 'value4'
put 'test', 'r2', 'f1:c2', 'value5'
put 'test', 'r2', 'f1:c3', 'value6'
snapshot 'table_name','snapshot_name' //生成快照
list_snapshots //查看快照
将生成的快照文件copy到目标集群HDFS的/hyperbase1路径下
命令参考:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snapshot_name' -copy-to hdfs://{目标集群IP}:8020/hyperbase1/ -mappers 16
迁移成功,前往目标集群验证快照文件。
TIP:
1. 迁移需要使用hbase用户,若使用root用户执行会提醒权限受限。如下图所示:
执行export HADOOP_USER_NAME=hbase,切换hbase用户可解决该问题。
2. 若迁移过程中出现端口相关报错。如下所示:
需在Manager界面Yarn服务页面修改“yarn.nodemanager.resource.memory-mb”的值,将1024修改为8192,配置服务后重启Yarn服务。顺利解决报错,完成迁移。
在目标集群的hbase shell中,list_snapshots查看原表的snapshot是否迁移成功
list_snapshots
在目标集群通过clone_snapshot命令,恢复表(表名称可以和原表不同)
clone_snapshot 'snapshot_name','new_table_name'
【注】:这一步骤不做也可以进行查表,但由于ExportSnapshot 操作主要是通过MR job 直接拷贝HDFS文件方式,最终目标集群上线的region的locality水平无法预估,所以强烈建议做这一步提升读性能
major_compact 'new_table_name'
检查建表成功,至此HBase表已完成迁移。