报错如下
image.png解决
1、查看 hbase 的请求数量是否过高,查看Request Per Second 并不高,排除热点问题,
2、检查表是否存在一致性问题
hbase hbck 检查输出所以ERROR信息,每个ERROR都会说明错误信息
hbase hbck -details hbase:meta
3、使用hbase用户尝试修复,在这之前要先确定hdfs上的tableinfo,regioninfo,region等数据都存在
修复.META.表损坏
META.表损坏的时候,HBase将启动失败,这种情况下要使用OFFlineMetaRepair工具创建新的META.表
该工具的工作原理是找到HBase在HDFS的主目录,加载Region的元数据文件信息,然后重新创建新的META.表:
hbase hbck -repair hbase:meta
hbase org.apache.hadoop.hbase.util.OffileMetaRepair
注意重启hbase关闭echo "balance_switch false" | hbase shell,重启之后开启true,并解决本地化低问题
补充
-
hbase 一致性
.meta表和regionserver持有的region信息不一致,region缺失空洞,region重叠,meta元数据丢失等 -
检查
hbase hbck
Status:OK,表示没有发现不一致问题。
Status:INCONSISTENT,表示有不一致问题。 -
优雅下线
regionserver hbase2.x
graceful_stop.sh做的工作是逐个地讲Region从RegionServer中移除,先移除一个Region,然后将这个Region安置到一个新的地方,再移除下一个,直到Region被全部移除。最后关闭RegionServer -
整体修复
hbase hbck -repair hbase:meta
空洞修复hbase hbck -repairHoles hbase:meta
hbase hbck -repair
Shortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps -fixReferenceFiles -fixHFileLinks -fixTableLocks -fixOrphanedTableZnodes
hbase hbck -repairHoles
Shortcut for -fixAssignments -fixMeta -fixHdfsHoles
hbase hbck -repairHoles 修复holes
1、hbase hbck -fixMeta 修复meta表信息,利用regioninfo信息,重新生成对应meta row填写到meta表中,并为其填写默认的分配regionserver。
2、hbase hbck -fixHdfsHoles 修复region缺失,利用缺失的rowkey范围边界,生成新的region目录以及regioninfo填补这个空洞。
3、hbase hbck -fixAssignment 把这些offline的region触发上线,当region开始重新open上线的时候,会被重新分配到真实的RegionServer上 , 并更新meta表上对应的行信息。
hbase hbck -repair 包含以上空洞修复同时还包括修复tableinfo缺失,regioninfo缺失,region重叠等整体修复
1、hbase hbck -fixTableOrphans 先修复tableinfo缺失问题,根据内存cache或者hdfs table 目录结构,重新生成tableinfo文件。
2、hbase hbck -fixHdfsOrphans 修复regioninfo缺失问题,根据region目录下的hfile重新生成regioninfo文件3、hbase hbck -fixHdfsOverlaps 修复region重叠问题,merge重叠的region为一个region目录,并从新生成一个regioninfo。
经过以上命令修复,一定要重启hbase,否则监控页还会有大量的region in RIT
网友评论