1. Region没有deploy到任何regionserver上
执行HBCK检查之后确认region元数据信息在HDFS喝hbase:meta中都存在,但没有deploy到任何一台regionserver上,HBCK输出如下:
如果在hbck输出的detail信息中看到 ‘not deployed on any region server’, 可以使用如下命令进行修复:
Hyperbase hbck -fixassignments
当然,除了使用hbck命令之外也可以直接在hbase shell中执行assign命令部署指定region。需要特别注意的是,hbck输出中包含 ‘There is a hole in the region chain...’这样的信息,先不用处理,执行fixassignments命令之后再执行hbck看看还是否输出这样的信息。
2. Region没有deploy到任何regionserver上,且元数据表中数据为空
执行HBCK检查之后发现region元数据信息只在HDFS中存在,在hbase:meta中不存在,而且没有deploy到任何一台regionserver上,HBCK输出如下:
如果在hbck输出的detail信息中看到 ‘On HDFS, but not listed in hbase:meta or deployed on any region server’, 可以使用如下命令进行修复:
Hyperbase hbck –fixMeta -fixassignments
同样,看到 ‘There is a hole in the region chain...’这样的信息先不用处理,执行完上述修复命令之后再执行hbck检查是否还有不一致的现象。