Hyperbase 表导入导出之离线迁移

相关链接:

Hyperbase表导入导出之snapshot快照

Hyperbase表导入导出之export/import


概要说明

面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示hbase 表数据离线迁移的步骤。


TIP:该方法适用于数据量较大的时候,需要将hdfs数据get到本地,操作期间要确保本地空间足够大。
该方法在hbase同版本、不同版本之间经测试都可以迁移数据,但最好是在同版本之间迁移。


详细说明

本案例介绍使用 离线迁移 的方式导入导出 hbase 数据,hbase相同版本、不同版本经测试都是可用的,该方法只需要4步:

1. 在源集群上执行get 将hbase 数据文件获取到 HDFS 路径

2. 将数据文件copy 到目标集群并 put 上传到HDFS

3. 确保目标集群处于在线状态,进行在线修复操作

4. hbase shell 验证数据是否正确迁移


注意:

  • 以下所有操作必须是 hbase 用户来执行,如果是开了安全的集群,需要kinit hbase获取认证信息,如果是没开安全的集群,执行命令之前需要加上 sudo -u hbase
  • 以下操作需要准备好TDH客户端,参考:准备TDH客户端环境


测试环境介绍

1. 迁出集群为TDH社区版

2. 迁入集群为TDH社区开发版

3. 两集群均未开启Kerberos安全

TIP:执行export HADOOP_USER_NAME=hbase,切换hbase用户。


详细步骤说明

步骤一:在源集群上执行get 将hbase 数据文件获取到 HDFS 路径

hbase的表数据默认在hdfs的 /hyperbase1/data/<database_name>/<table_name> 路径下:

hdfs dfs -ls /hyperbase1/data/default/

hbase表数据从hdfs get到本地路径:

hdfs dfs -get /hyperbase1/data/default/test


步骤二:将数据文件copy 到目标集群并 put 上传到HDFS

将本地数据上传到hdfs的路径下,hdfs的路径是:

/hyperbase1/data/<database_name>/<table_name> ,路径中的 <table_name> 需要是不存在的。

hdfs dfs -put /root/young/hbase_qianyi/test /hyperbase1/data/default/test_qianyi


步骤三:对HBase表进行修复操作

通过HBCK2工具HBASE集群表进行修复。HBCK2工具是Apache HBase hbck工具的下一版本,目前主要用于Hadoop 9.0版本的修复(对应HBase的开源版本2.2.6),Hadoop 9.0 也不再使用DSTool工具进行修复。区别于hbck,hbck2工具通过发送命令给HMaster,由HMaster进行修复。

HBCK2每次运行时都会执行一个单独的任务。HBCK2工具不会分析正在运行的集群中的所有内容并修复所有问题。相反,您可以使用HBCK2工具来迭代地查找和修复集群中的问题。HBCK2工具使您可以使用交互式命令来一次解决一个问题。

hbase hbck -j hbase-hbck2-<version>.jar addFsRegionsMissingInMeta default:test_qianyi


步骤四:同步后确认数据是否导入成功

使用 hbase shell 查看数据是否完整。

评论
登录后可评论
发布者
icon
扬仔无敌
文章
31
问答
119
关注者
10
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入