相关链接:
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示Export/Import 的方式导入导出 hbase 数据。
TIP:该方法在HBase同版本、不同版本之间都可以迁移数据,但最好是在同版本之间迁移数据。
该方法适用于数据量较小的HBase表。
1. 迁出集群为TDH社区版
2. 迁入集群为TDH社区开发版
3. 两集群均未开启Kerberos安全
Tips:若两个集群开启Kerberos安全,则需要配置互信,可参考《TDH集群配置互信流程》
本案例介绍使用 Export/Import 的方式导入导出 hbase 数据,该方法需要4步:
1. 在源集群上执行export 将数据文件copy到 HDFS 路径
2. 将数据文件copy 到目标集群并上传到HDFS
3. 在目标集群创建一样结构的表
4. 在目标集群上 Import 到hbase 表
与inceptor的Export/Import导出导入数据不同,hbase不会同步导出导入表的元数据信息,所以需要在目标集群手动创建一样结构的表。
注意:
1. 以下所有操作必须是 hbase 用户来执行,如果是开了安全的集群,需要kinit hbase获取认证信息,如果是没开安全的集群,执行命令之前需要执行export HADOOP_USER_NAME=hbase
2. 以下操作需要准备好TDH客户端,参考:准备TDH客户端环境。
步骤一:初始化客户端,进入Hyperbase命令行
启动TDH Client,用hbase shell命令进入Hyperbase命令行。
source /root/TDH-Client/init.sh // 执行init.sh脚本,启动TDH Client
hbase shell //进入命令行
步骤二:创建测试源表(源表为default命名空间下以及非default命名空间下均可)
本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'
步骤三:在源集群上执行export 将数据文件copy到 HDFS 路径
hbase org.apache.hadoop.hbase.mapreduce.Driver export test /root/young/hbase_qianyi
注意:上述命令中的/root/young/hbase_qianyi必须是hdfs上 不存在 的路径
执行hdfs dfs -ls /root/young/hbase_qianyi查看导出情况
步骤四:将数据文件copy 到目标集群并上传到HDFS
将数据目录和文件 cp 到目标集群,并上传到 HDFS 上,本案例中以同一个的集群的不同表来模拟同版本之间数据迁移。
hdfs dfs -cp /root/young/hbase_qianyi/part-m-00000 /tmp/young/
hdfs dfs -ls /tmp/young/
步骤五:在目标集群上创建和源表结构一样的表
本案例建表语句如下
创建 test2,保证和测试源表test结构一致。
create 'test2','f1','f2'
步骤六:在目标集群上 Import 到hbase 表
执行命令:
hbase org.apache.hadoop.hbase.mapreduce.Driver import test2 /tmp/young/
步骤七:在目标集群hdfs上检查目标表情况
在目标集群的hbase shell中,执行scan ‘test2’,可以看到表已经顺利迁移完成。
相关链接:
面对一些重要数据,很多场景下都需要将数据仓库进行复制,这可以是整个数据库的更广泛级别,也可以是较小的级别。本案例将演示Export/Import 的方式导入导出 hbase 数据。
TIP:该方法在HBase同版本、不同版本之间都可以迁移数据,但最好是在同版本之间迁移数据。
该方法适用于数据量较小的HBase表。
1. 迁出集群为TDH社区版
2. 迁入集群为TDH社区开发版
3. 两集群均未开启Kerberos安全
Tips:若两个集群开启Kerberos安全,则需要配置互信,可参考《TDH集群配置互信流程》
本案例介绍使用 Export/Import 的方式导入导出 hbase 数据,该方法需要4步:
1. 在源集群上执行export 将数据文件copy到 HDFS 路径
2. 将数据文件copy 到目标集群并上传到HDFS
3. 在目标集群创建一样结构的表
4. 在目标集群上 Import 到hbase 表
与inceptor的Export/Import导出导入数据不同,hbase不会同步导出导入表的元数据信息,所以需要在目标集群手动创建一样结构的表。
注意:
1. 以下所有操作必须是 hbase 用户来执行,如果是开了安全的集群,需要kinit hbase获取认证信息,如果是没开安全的集群,执行命令之前需要执行export HADOOP_USER_NAME=hbase
2. 以下操作需要准备好TDH客户端,参考:准备TDH客户端环境。
步骤一:初始化客户端,进入Hyperbase命令行
启动TDH Client,用hbase shell命令进入Hyperbase命令行。
source /root/TDH-Client/init.sh // 执行init.sh脚本,启动TDH Client
hbase shell //进入命令行
步骤二:创建测试源表(源表为default命名空间下以及非default命名空间下均可)
本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'
步骤三:在源集群上执行export 将数据文件copy到 HDFS 路径
hbase org.apache.hadoop.hbase.mapreduce.Driver export test /root/young/hbase_qianyi
注意:上述命令中的/root/young/hbase_qianyi必须是hdfs上 不存在 的路径
执行hdfs dfs -ls /root/young/hbase_qianyi查看导出情况
步骤四:将数据文件copy 到目标集群并上传到HDFS
将数据目录和文件 cp 到目标集群,并上传到 HDFS 上,本案例中以同一个的集群的不同表来模拟同版本之间数据迁移。
hdfs dfs -cp /root/young/hbase_qianyi/part-m-00000 /tmp/young/
hdfs dfs -ls /tmp/young/
步骤五:在目标集群上创建和源表结构一样的表
本案例建表语句如下
创建 test2,保证和测试源表test结构一致。
create 'test2','f1','f2'
步骤六:在目标集群上 Import 到hbase 表
执行命令:
hbase org.apache.hadoop.hbase.mapreduce.Driver import test2 /tmp/young/
步骤七:在目标集群hdfs上检查目标表情况
在目标集群的hbase shell中,执行scan ‘test2’,可以看到表已经顺利迁移完成。