相关链接:
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示hbase 表数据离线迁移的步骤。
TIP:该方法适用于数据量较大的时候,需要将hdfs数据get到本地,操作期间要确保本地空间足够大。
该方法在hbase同版本、不同版本之间经测试都可以迁移数据,但最好是在同版本之间迁移。
本案例介绍使用 离线迁移 的方式导入导出 hbase 数据,hbase相同版本、不同版本经测试都是可用的,该方法只需要4步:
1. 在源集群上执行get 将hbase 数据文件获取到 HDFS 路径
2. 将数据文件copy 到目标集群并 put 上传到HDFS
3. 确保目标集群处于在线状态,进行在线修复操作
4. hbase shell 验证数据是否正确迁移
注意:
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 查看数据是否完整。
相关链接:
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示hbase 表数据离线迁移的步骤。
TIP:该方法适用于数据量较大的时候,需要将hdfs数据get到本地,操作期间要确保本地空间足够大。
该方法在hbase同版本、不同版本之间经测试都可以迁移数据,但最好是在同版本之间迁移。
本案例介绍使用 离线迁移 的方式导入导出 hbase 数据,hbase相同版本、不同版本经测试都是可用的,该方法只需要4步:
1. 在源集群上执行get 将hbase 数据文件获取到 HDFS 路径
2. 将数据文件copy 到目标集群并 put 上传到HDFS
3. 确保目标集群处于在线状态,进行在线修复操作
4. hbase shell 验证数据是否正确迁移
注意:
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 查看数据是否完整。