呵呵,今天花了一天的时间查资料做测试,略微的总结了一下hbase数据迁移的方法。
一、需要在hbase集群停掉的情况下迁移
步骤:(1)执行hadoop distcp -f filelist "hdfs://new cluster ip:9000/hbasetest" (2)在new cluster执行./hbase org.jruby.Main add_table.rb /hbase/table20111222,将拷贝来的表加入到.MEAT.中(会出现region的数目不一致的问题,这个需要重启hase才能解决) 说明:(1)filelist为hdfs上的列表文件,内容如下: /hbase/table20111222 /hbase/table20120131 (2)如果两个集群的hadoop版本不一致,需要在new cluster上执行hadoop distcp,否则会出现读写异常;
二、在集群运行的时候进行数据迁移
1、Replication:这个是动态的备份(可以理解为实时备份)
步骤:(1)在old cluster将需要迁移的表属性进行修改: disable 'your_table' alter 'your_table', {NAME => 'family_name', REPLICATION_SCOPE => '1'} enable 'your_table' (2)打开new cl