hbase数据迁移方式

时间:2021-01-31 23:19:04

之前要hbase数据迁移,我使用Export/Import方式,感觉很棒,链接如下:
http://blog.csdn.net/stark_summer/article/details/49078471,后来发现还有其他两种方式,so就全部整理下吧。

  1. copytable方式

    bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zookeeper1,zookeeper2,zookeeper3:/hbase 'testtable'

    目前0.92之前的版本的不支持多版本的复制,0.94已经支持多个版本的复制。当然这个操作需要添加hbase目录里的conf/mapred-site.xml,可以复制hadoop的过来。

  2. Export/Import

        bin/hbase org.apache.hadoop.hbase.mapreduce.Export testtable /user/testtable [versions] [starttime] [stoptime]
    bin/hbase org.apache.hadoop.hbase.mapreduce.Import testtable /user/testtable

    跨版本的迁移,我觉得是一个不错的选择,而且copytable不支持多版本,而export支持多版本,比copytable更实用一些。

  3. 直接拷贝hdfs对应的文件
    首先拷贝hdfs文件,如

    bin/hadoop distcp hdfs://srcnamenode:9000/hbase/testtable/ hdfs://distnamenode:9000/hbase/testtable/

    然后在目的hbase上执行bin/hbase org.jruby.Main bin/add_table.rb /hbase/testtable
    生成meta信息后,重启hbase
    这个操作是简单的方式,操作之前可以关闭hbase的写入,执行flush所有表(上面有介绍),再distcp拷贝。