其他文章也很多就不做些解释了
1、进行快照
PS:这里听说可以快照出来之后然后使用clone_snapshot弄成一张新表,然后做majon_conpact后再弄到别的集群去。个人觉得如果数据太多在生产机器做这个操作也会影响IO性能等,各有各的说法吧。我这里就直接快照导出了。
2、快照导出
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_table_snapshot_toload -copy-from hdfs:///hbase -copy-to hdfs:///tmp/hbase-snapshot1/
PS:我这里因为是自己单个集群做的测试,所以直接copy到了tmp目录下。如果是要取出来同步到别的集群,可以在这个步骤导出快照之后再用hadoop ditcp拷贝到别的集群,或者直接下载到本地用scp、rsync等命令处理。
3、使用bulkload导入hfile
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hbase-snapshot1/archive/data/default/test_table/4af70511e1e6ef1df54c9fce063ab039 test_table_snapshot_123_newtable_Fromditcp
PS:这个表我是提前创建好的,然后导入hfile即可。如果hfile比较多,可以写个脚本然后while或者for循环来处理。大概的步骤就是这样。
思考
PS:如果是要保证两个集群数据都要完全同步的话可以使用regionreplication的功能(如何开启别的文章搜一下或者查下官网即可),这样之后的数据就会开启同步,但是开启之前的数据还是需要自己手动同步过去。