HBase1.x
因为要实现hbase的数据迁移,上游直接下发的region文件
即图中文件,要在另一个集群上通过该文件将hbase表恢复
步骤如下
1.在新集群上创建hbase表,列簇同原表
2.将region文件移动到新集群hbase的hdfs上该表的路径下,即图中的/hbase/data/default/hbase_test2下
3.开启hbase shell,停用该表(disable ‘hbase_test2’)
4.【第一次修复】
执行命令: hbase hbck -repair “hbase_test2” .
5.【第二次修复】
hbase hbck -fixHdfsHoles ‘hbase_test2’
6.【第三次修复】
在linux命令行执行 hbase hbck -fixAssignments 'hbase_test2’
7.【第四次修复】
sudo -u hbase hbase hbck -fixMeta ‘hbase_test2’
8.启用表(enable ‘hbase_test2’)
HBase2.x
HBase2.x版本之后不再支持hbck,而新工具hbck2不支持2.1.0版本hbase,故采用快照方式迁移
1.HBase新集群新建table同源表
2.源表创建快照 snapshot ‘table_name’, ‘snapshot_name’
3.源表快照导出,传入新集群
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot_name -copy-from hdfs://source_ip:port/apps/hbase/data -copy-to hdfs://sink_ip:port/hbase -mappers 20 -bandwidth 20
4.region文件全部复制到新集群表的对应目录下
5.新集群HBase表禁用 disable ‘new_table’
6.恢复快照restore_snapshot ‘tp_frequency_info_snapshot’
7.启动新集群HBase表 enable ‘new_table’
8.查看页如果hbaseweb有rit情况查看日志文件权限是否正确,如果日志无问题重启集群即可