美文网首页
利用HBase Export/Import跨集群数据迁移

利用HBase Export/Import跨集群数据迁移

作者: yiming1012 | 来源:发表于2019-10-29 21:57 被阅读0次

文章作者:易明
个人博客:https://yiming1012.github.io
简书主页:https://www.jianshu.com/u/6ebea55f5cec
邮箱地址:1129079384@qq.com

背景

        最近需要将本地HBase集群(Hadoop2.7.2+HBase1.2.4)数据迁移到阿里云集群(Hadoop2.7.7+HBase1.4.10)上,而两个集群之间是不能相互通信的。通过查阅资料,使用HBase自带的Export/Import实现,这种方法不是直接将原表数据拷贝到目标集群上,而是先利用Export将HBase表数据转换成文件存入HDFS上,然后将HDFS上的文件get下来,将文件拷贝到目标集群上,通过put上传至HDFS,再利用Import导入到对应的HBase表。以上过程需要MapReduce的支持,所以需要启动yarn

Export/Import介绍

1、Export阶段
Export阶段的功能是将HBase表的数据以文件的形式存储到HDFS。 命令如下,t_history为HBase上的表名,/t_history_bak为HDFS上的目录。

hbase org.apache.hadoop.hbase.mapreduce.Export t_history /t_history_bak

2、get阶段
此过程是将上一步HDFS上的数据下载到本地。

hadoop fs -get /t_history_bak /home/yiming/t_history_bak/

3、put阶段
源HBase下载到服务器上的数据通过ftp或Winscp拷贝到目标服务器,即阿里云集群。通过put命令将数据存储到HDFS根目录。t_history_bak是本地服务器的数据目录,/为HDFS根目录。

hadoop fs -put t_history_bak/ /

4、Import阶段
Import阶段是将HDFS上的数据导入到HBase对应的表。前提是目标HBase集群已存在这张表,而且Import数据到HBase表的过程是append(累加)而不是overwrite(覆盖)。

hbase org.apache.hadoop.hbase.mapreduce.Import t_history /t_history_bak

至此,本次数据迁移完成。

相关文章

网友评论

      本文标题:利用HBase Export/Import跨集群数据迁移

      本文链接:https://www.haomeiwen.com/subject/wadgvctx.html