HBase 数据迁移方案(集群互通)
Export and Import 方法
(1) 在旧集群上把hbase数据库中的表导出。 使用:hbase org.apache.hadoop.hbase.mapreduce.Export HbaseTable hdfs://newclusteriP:8020/user/data/HbaseTable. 其中HbaseTable 是hbase数据表名。把HbaseTable导出到新集群下的hdfs目录下。
(2) 在新集群上执行 hbase org.apache.hadoop.hbase.mapreduce.Import HbaseTable hdfs://newclusterIP:8020/user/data/HbaseTable. 把新集群HDFS下的HbaseTable 目录下的数据导入到Hbase数据库HbaseTable中。
CopyTable 方法:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable –peer.adr=newclusterZKip:2181/hbase –new.name=tablename tableOriginal
直接copy HDFS对应的文件:
利用hadoop提供的distcp命令把旧集群上的hbase数据表对应的文件拷贝到新集群上 ,如 hadoop distcp hdfs://oldclusterIP:8020/hbase/HbaseTable hdfs://newclusterIP:8020/hbase/HbaseTable.
然后在新集群上执行hbase org.jruby.Main add_table.rb hdfs://newclusterIP:8020/hbase/HbaseTable, 生成meta信息,重启hbase.