呵呵,今天花了一天的时间查资料做测试,略微的总结了一下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 cluster集群的replication,修改hbase-site.xml
<property>
<name>hbase.replication</name>
<value>true</value>
</prop

本文总结了在Hbase集群环境下数据迁移的两种方法,包括集群停机时的迁移和利用Replication进行动态备份的实时迁移策略。通过查阅hbase官方文档与专家博客,提供了详细的迁移步骤和参考资料。
5103

被折叠的 条评论
为什么被折叠?



