MRS中恢复HBase表
CDH HBase表目录已经迁移到MRS HBase后,可以使用命令恢复。对于那些会变化的数据,需要使用快照保证数据不变,然后再迁移并恢复。
约束限制
本方案仅支持迁移数据到MRS 1.x版本集群,2.x及之后版本无法通过HBase修复命令重建HBase表。
迁移的目标集群为2.x及之后版本时,HBase修复命令已经不再支持,通过HBase数据目录迁移的方式无法使用。
使用命令恢复历史不变的数据
使用快照迁移并恢复会变的数据
- 在源端CDH集群HBase shell中执行:
- 在源端CDH集群HBase shell执行:
- 如果表没有打开Snap功能,则执行:
- 创建HDFS Snapshot,例如命名s0:
hdfs dfs -createSnapshot <snapshotDir> [s0]
hdfs dfs -createSnapshot test
- CDM通过HDFS Snapshot复制文件至MRS。CDM的作业配置:
- “源目录或文件”输入:/hbase/data/default/src_test/.snapshot/s0
- 目的端“写入目录”输入:/hbase/data/default/表名
- 执行fixMeta和fixAssignments等命令恢复表,参考使用命令恢复历史不变的数据。
- 在CDH集群中删除快照:
恢复表时的问题处理
- 执行完fixMeta命令后,报错显示“xx inconsistent”:
fixMeta命令是校验HDFS和HBase元数据一致性,出现这个提示是正常情况,继续执行fixAssignments命令即可。
- 执行完fixAssignments命令后,报错显示“xx inconsistent”:
fixAssignments是让所有Region上线,偶尔会出现部分Region上线较慢,可以再执行一次以下命令检查一下:
hbase hbck 表名
如果出现“Status : OK”则表示HBase表恢复成功。
- 执行完fixAssignments命令后,错误提示多个region有相同的startkey,部分region存在overlap情况:
hbase hbck –fixHdfsOverlaps 表名
执行完毕后再执行fixMeta和fixAssignments命令。