美文网首页
利用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