hbase表修复

场景

opentsdb启动报错

grep -i error /tmp/opentsdb.log
2020-10-13 12:19:41,098 INFO  [main-SendThread(localhost:2181)] ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2020-10-13 12:19:44,717 INFO  [main-SendThread(localhost:2181)] ClientCnxn: Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
2020-10-13 12:19:48,400 INFO  [main-SendThread(localhost:2181)] ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
cat /tmp/opentsdb.log
省略。。。
2020-10-13 12:21:31,740 WARN  [AsyncHBase I/O Worker #1] HBaseClient: Probe Exists(table="tsdb-uid", key=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 65, 115, 121, 110, 99, 72, 66, 97, 115, 101, 126, 112, 114, 111, 98, 101, 126, 60, 59, 95, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 65, 115, 121, 110, 99, 72, 66, 97, 115, 101, 126, 112, 114, 111, 98, 101, 126, 60, 59, 95, 60], family=null, qualifiers=null, attempt=0, region=RegionInfo(table="tsdb-uid", region_name="tsdb-uid,,1542978859652.665eaacf411c9f82e13e35a62cfff831.", stop_key="")) failed
org.hbase.async.NonRecoverableException: Too many attempts: Exists(table="tsdb-uid", key=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 65, 115, 121, 110, 99, 72, 66, 97, 115, 101, 126, 112, 114, 111, 98, 101, 126, 60, 59, 95, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 65, 115, 121, 110, 99, 72, 66, 97, 115, 101, 126, 112, 114, 111, 98, 101, 126, 60, 59, 95, 60], family=null, qualifiers=null, attempt=11, region=RegionInfo(table="tsdb-uid", region_name="tsdb-uid,,1542978859652.665eaacf411c9f82e13e35a62cfff831.", stop_key=""))
	at org.hbase.async.HBaseClient.tooManyAttempts(HBaseClient.java:2056) [asynchbase-1.7.2.jar:na]
	at org.hbase.async.HBaseClient.sendRpcToRegion(HBaseClient.java:1920) [asynchbase-1.7.2.jar:na]
	at org.hbase.async.HBaseClient$1RetryRpc.call(HBaseClient.java:1944) [asynchbase-1.7.2.jar:na]
	at org.hbase.async.HBaseClient$1RetryRpc.call(HBaseClient.java:1927) [asynchbase-1.7.2.jar:na]
	at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278) [async-1.4.0.jar:na]
	at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257) [async-1.4.0.jar:na]
	at com.stumbleupon.async.Deferred.callback(Deferred.java:1005) [async-1.4.0.jar:na]
	at org.hbase.async.HBaseRpc.callback(HBaseRpc.java:712) [asynchbase-1.7.2.jar:na]
	at org.hbase.async.RegionClient.decode(RegionClient.java:1533) [asynchbase-1.7.2.jar:na]
	at org.hbase.async.RegionClient.decode(RegionClient.java:88) [asynchbase-1.7.2.jar:na]
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.4.Final.jar:na]
	at org.hbase.async.RegionClient.handleUpstream(RegionClient.java:1223) [asynchbase-1.7.2.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(IdleStateAwareChannelHandler.java:36) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:294) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.9.4.Final.jar:na]
	at org.hbase.async.HBaseClient$RegionClientPipeline.sendUpstream(HBaseClient.java:3121) [asynchbase-1.7.2.jar:na]
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.9.4.Final.jar:na]
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.9.4.Final.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
2020-10-13 12:21:31,743 INFO  [AsyncHBase I/O Worker #2] HBaseClient: Invalidated cache for RegionInfo(table="tsdb-uid", region_name="tsdb-uid,,1542978859652.665eaacf411c9f82e13e35a62cfff831.", stop_key="") as RegionClient@477578960(chan=[id: 0xc92eaecf, /172.18.0.240:33258 => /172.18.0.241:16020], #pending_rpcs=0, #batched=0, #rpcs_inflight=0) seems to be splitting or closing it.
2020-10-13 12:21:31,773 INFO  [main] TSDB: Flushing compaction queue
2020-10-13 12:21:32,023 INFO  [main] HBaseClient: Channel [id: 0x3e6bc4b6, /172.18.0.240:57726 => /172.18.0.242:16020] is disconnecting: [id: 0x3e6bc4b6, /172.18.0.240:57726 => /172.18.0.242:16020] DISCONNECT
2020-10-13 12:21:32,024 INFO  [main] HBaseClient: Lost connection with the .META. region
2020-10-13 12:21:32,027 INFO  [main] HBaseClient: Channel [id: 0xc92eaecf, /172.18.0.240:33258 => /172.18.0.241:16020] is disconnecting: [id: 0xc92eaecf, /172.18.0.240:33258 => /172.18.0.241:16020] DISCONNECT
2020-10-13 12:21:32,033 INFO  [main] TSDB: Completed shutting down the TSDB
Exception in thread "main" java.lang.RuntimeException: Initialization failed
	at net.opentsdb.tools.TSDMain.main(TSDMain.java:237)
Caused by: com.stumbleupon.async.DeferredGroupException: At least one of the Deferreds failed, first exception:
	at com.stumbleupon.async.DeferredGroup.done(DeferredGroup.java:169)
	at com.stumbleupon.async.DeferredGroup.recordCompletion(DeferredGroup.java:142)
	at com.stumbleupon.async.DeferredGroup.access$000(DeferredGroup.java:36)
	at com.stumbleupon.async.DeferredGroup$1Notify.call(DeferredGroup.java:82)
	at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278)
	at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257)
	at com.stumbleupon.async.Deferred.access$300(Deferred.java:430)
	at com.stumbleupon.async.Deferred$Continue.call(Deferred.java:1366)
	at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278)
	at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257)
	at com.stumbleupon.async.Deferred.access$300(Deferred.java:430)
	at com.stumbleupon.async.Deferred$Continue.call(Deferred.java:1366)
	at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278)
	at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257)
	at com.stumbleupon.async.Deferred.callback(Deferred.java:1005)
	at org.hbase.async.HBaseRpc.callback(HBaseRpc.java:712)
	at org.hbase.async.HBaseClient.tooManyAttempts(HBaseClient.java:2058)
	at org.hbase.async.HBaseClient.handleNSRE(HBaseClient.java:2848)
	at org.hbase.async.RegionClient.decode(RegionClient.java:1527)
	at org.hbase.async.RegionClient.decode(RegionClient.java:88)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.hbase.async.RegionClient.handleUpstream(RegionClient.java:1223)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142)
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
	at org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(IdleStateAwareChannelHandler.java:36)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:294)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
	at org.hbase.async.HBaseClient$RegionClientPipeline.sendUpstream(HBaseClient.java:3121)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.hbase.async.RegionOpeningException: org.apache.hadoop.hbase.exceptions.RegionOpeningException: Region tsdb,,1548705607033.6fb5105995b1d6d49e3bfb5cbef4c1ab. is opening on c7002,16020,1602561238594
	at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2964)
	at org.apache.hadoop.hbase.regionserver.RSRpcServices.getRegion(RSRpcServices.java:1132)
	at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2075)
	at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34946)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2328)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)

Caused by RPC: Exists(table="tsdb", key=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 65, 115, 121, 110, 99, 72, 66, 97, 115, 101, 126, 112, 114, 111, 98, 101, 126, 60, 59, 95, 60], family=null, qualifiers=null, attempt=0, region=RegionInfo(table="tsdb", region_name="tsdb,,1548705607033.6fb5105995b1d6d49e3bfb5cbef4c1ab.", stop_key=[0, 0, 1, 92, 44, 27, 32, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 33, 0, 0, 3, 0, 0, 16, 0, 0, 4, 0, 0, 106]))
	at org.hbase.async.RegionOpeningException.make(RegionOpeningException.java:73)
	at org.hbase.async.RegionOpeningException.make(RegionOpeningException.java:34)
	at org.hbase.async.RegionClient.makeException(RegionClient.java:1753)
	at org.hbase.async.RegionClient.decodeException(RegionClient.java:1773)
	at org.hbase.async.RegionClient.decode(RegionClient.java:1485)
	... 29 more

第1章 hbase报错

1、hbase hbck检查报错

hbase hbck
省略。。。
ERROR: Empty REGIONINFO_QUALIFIER found in hbase:meta
省略。。。

hbase修复表

hbase hbck -fixEmptyMetaCells
省略。。。

2、hbase hbck检查报错

hbase hbck
省略。。。
ERROR: There is a hole in the region chain between \x00\x00l^Gl\xC0\x00\x00\x01\x00\x00&\x00\x00\x02\x00\x047\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x04+ and \x00\x00m]\x0C,\x10\x00\x00\x01\x00\x0BC\x00\x00\x02\x00\x03\xCA\x00\x00\x03\x00\x03\xC9\x00\x00\x04\x00\x0BF.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: Last region should end with an empty key. You need to create a new region and regioninfo in HDFS to plug the hole.
ERROR: Found inconsistency in table tsdb
省略。。。

这种情况是在hdfs层面上的,这个region的.regioninfo(meta)文件不存在,使用"-fixHdfsHole"进行修复;-fixHdfsHole:修复region holes(空洞,某个区间没有region)问题。
hbase修复表

hbase hbck -fixHdfsHoles
省略。。。

3、hbase hbck检查报错

No HDFS region dir found:
Orphan region in HDFS: Unable to load .regioninfo from table tsdb in hdfs dir hdfs://bdcluster/hbase/data/default/tsdb/4021d8fe56d2d5db82151ac777474c17!  It may be an invali    d format or version file.  Treating as an orphaned regiondir.
省略。。。
Failed to read .regioninfo file for region tsdb
File does not exist: /hbase/data/default/tsdb/4021d8fe56d2d5db82151ac777474c17/.regioninfo

hbase修复表

flush表
[root@c7001 ~]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/disk/hbase-1.3.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/disk/hadoop-2.8.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.3.0, re359c76e8d9fd0d67396456f92bcbad9ecd7a710, Tue Jan  3 05:31:38 MSK 2017

hbase(main):001:0> flush tsdb
NameError: undefined local variable or method `tsdb' for #<Object:0x7df28f1>
注意:表名加上引号
hbase(main):007:0> flush 'tsdb'
0 row(s) in 13.6890 seconds
hbase(main):008:0> quit

hbase hbck -fixHdfsOrphans tsdb

4、hbase hbck检查报错

not deployed on any region server.

这种情况下,region的hfile等数据都在,只是没有在任何region上online,使用"fixAssignments"进行修复。-fixAssignments:修复没有assign、assign不正确或者同时assign到多台RegionServer的问题region。

hbase修复表

hbase hbck -fixAssignments

5、hbase hbck检查报错

ERROR: Region { meta => null, hdfs => hdfs://bdcluster/hbase/data/default/tsdb/0ca3a2bf4cf091e97dbe26624c9757e6, deployed => , replicaId => 0 } on HDFS, but not listed in hbase:meta or deployed on any region server

这种情况下region的实际数据是存在的,但是在hbase:meta中不存在,使用"-fixMeta"进行信息同步修复。
hbase修复表

hbase hbck -fixMeta

6、hbase hbck检查报错

is a split parent in META, in HDFS, and not deployed on any region server. This could be transient.

7、hbase hbck检查报错

ERROR: (region tsdb,\x00\x00*]\x98\x15@\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x04\x06\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x06!,1602579999051.9a16ad6816a73c4f9f89ebe66eded8d6.) Multiple regions have the same startkey: \x00\x00*]\x98\x15@\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x04\x06\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x06!
ERROR: (region tsdb,\x00\x00*]\x98\x15@\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x04\x06\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x06!,1589371271384.a52c9d2cdb367b250cb251666d9007b4.) Multiple regions have the same startkey: \x00\x00*]\x98\x15@\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x04\x06\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x06!
ERROR: (regions tsdb,\x00\x00*]\x98\x15@\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x04\x06\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x06!,1589371271384.a52c9d2cdb367b250cb251666d9007b4. and tsdb,\x00\x00*]\xAET\x90\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x00\x06\x00\x00\x03\x00\x00\x03\x00\x00\x04\x00\x06\x1C,1602579999051.b2fe5dec4ad0104a83da059d18cc7da3.) There is an overlap in the region chain.
2020-10-13 17:10:50,249 WARN  [main] util.HBaseFsck: reached end of problem group: \x00\x00*]\xC2\xFC\x10\x00\x00\x01\x00\x06\x0A\x00\x00\x02\x00\x00\xB1\x00\x00\x03\x00\x00\xB2\x00\x00\x04\x00\x06%
ERROR: Found inconsistency in table tsdb
省略。。。
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/3f67f9e2d0f154c71317947df8c286cb/t/d66557b8ad1048a0984217aab2f581e8.a099b47d2f958156a6700c6db9f55b38
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/bd48d5231f4da0daccfe397747025df4/t/2e98baec0de0413eb5c8c8f32099f32e.b6a31dbe70640a08b003de588ba7bd97
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/b0fb18494a411958a7add6e508967221/t/5b63ece8f7944146be55407200ca5f3d.a52c9d2cdb367b250cb251666d9007b4
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/35f0bb902b1f1d20d90fe4cee919e6d8/t/577d2f0909094d578a6d13c127f5c4e3.2d5da6d0d97c96ba4a8d8c540db82b39
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/404d67b43d0e0d1cfcb6754c0797cafd/t/64b7755b050e453dbdf684e1c407b7b0.382c8b2f50af99b56c68a065bf1ff630
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/07dd208ad4a573c336cc8c64c2da85c7/t/50c4cf05e7d64f6e971b387b81d6367d.cf8dbd342a2870e0bd714e19bfe6aac2
ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/0f8b200c9ab044dc2c7ab6ef55188a7b/t/46a34c258d4944cdb3cbebd9a8f52f02.66c030248c6b0b07f670bb442ebeb1ad

hbase修复表

hbase hbck -fixReferenceFiles   

8、hbase hbck检查报错

ERROR: Found lingering reference file hdfs://bdcluster/hbase/data/default/tsdb/

hbase修复表

hbase hbck -fixReferenceFiles

9、hbase hbck检查报错

Multiple regions have the same startkey:XXXX
There is an overlap in the region chain.

hbase修复表

hbase hbck -fixHdfsOverlaps

10、hbase hbck检查报错

found in META, but not in HDFS or deployed on any region server.
not deployed on any region server.
on HDFS, but not listed in hbase:meta or deployed on any region server.
There is a hole in the region chain between .You need to create a new .regioninfo and region dir in hdfs to plug the hole.

hbase修复表


hbase hbck -fixMeta -fixAssignments  -fixHdfsHoles

hbase hbck 修复过程详细解读

hbase hbck -fixAssignments
修复分布问题的时候输出

Trying to fix unassigned region...
2020-10-14 09:46:58,298 INFO  [hbasefsck-pool1-t48] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 09b306abe06352af702bcea64bb15f61, NAME => 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.', STARTKEY => '\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5', ENDKEY => '\x00\x00(]\xE7\xC9\xF0\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04\x08'}
2020-10-14 09:46:58,298 INFO  [hbasefsck-pool1-t21] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 0358cf6973c12495d8a6100f4582f409, NAME => 'tsdb,\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag,1589367225052.0358cf6973c12495d8a6100f4582f409.', STARTKEY => '\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag', ENDKEY => '\x00\x00`^[O`\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05s\x00\x00\x03\x00\x05r\x00\x00\x04\x00\x0Ag'}
2020-10-14 09:46:58,298 INFO  [hbasefsck-pool1-t34] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 094c27940eeb70e774db3011b9b180fd, NAME => 'tsdb,\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/,1589377264511.094c27940eeb70e774db3011b9b180fd.', STARTKEY => '\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/', ENDKEY => '\x00\x00\x06^\x87\xB1\xE0\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x004\x00\x00\x03\x00\x00&\x00\x00\x04\x00\x01''}
2020-10-14 09:46:58,298 INFO  [hbasefsck-pool1-t20] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 083a0ef5b0ba63cf4fbc496d027cfaa2, NAME => 'tsdb,\x00\x00\x06]_\x9D\x00\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x01I\x00\x00\x03\x00\x00\x10\x00\x00\x04\x00\x01-,1589377409936.083a0ef5b0ba63cf4fbc496d027cfaa2.', STARTKEY => '\x00\x00\x06]_\x9D\x00\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x01I\x00\x00\x03\x00\x00\x10\x00\x00\x04\x00\x01-', ENDKEY => '\x00\x00\x06]a\xA5P\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x02\xA3\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01$'}
2020-10-14 09:47:43,678 INFO  [hbasefsck-pool1-t14] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 037ba0dcb69e2453ae17b04682a0607a, NAME => 'tsdb,\x00\x005]\xB8\x0D\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C$,1589284372576.037ba0dcb69e2453ae17b04682a0607a.', STARTKEY => '\x00\x005]\xB8\x0D\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C$', ENDKEY => '\x00\x005]\xB9\xCF\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C('}
2020-10-14 09:47:43,681 INFO  [hbasefsck-pool1-t28] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 09c15fdb7274bc56650d40d2f8a82adc, NAME => 'tsdb,\x00\x00&\x5C\x0A\x1Ap\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x03\xF9\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x05\xCB,1589376226633.09c15fdb7274bc56650d40d2f8a82adc.', STARTKEY => '\x00\x00&\x5C\x0A\x1Ap\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x03\xF9\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x05\xCB', ENDKEY => '\x00\x00&\x5C\x0BA\xC0\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x00\x9F\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x05\xCE'}
2020-10-14 09:47:50,620 INFO  [hbasefsck-pool1-t21] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 0358cf6973c12495d8a6100f4582f409, NAME => 'tsdb,\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag,1589367225052.0358cf6973c12495d8a6100f4582f409.', STARTKEY => '\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag', ENDKEY => '\x00\x00`^[O`\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05s\x00\x00\x03\x00\x05r\x00\x00\x04\x00\x0Ag'}
2020-10-14 09:47:50,620 INFO  [hbasefsck-pool1-t48] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 09b306abe06352af702bcea64bb15f61, NAME => 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.', STARTKEY => '\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5', ENDKEY => '\x00\x00(]\xE7\xC9\xF0\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04\x08'}
2020-10-14 09:47:50,620 INFO  [hbasefsck-pool1-t34] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 094c27940eeb70e774db3011b9b180fd, NAME => 'tsdb,\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/,1589377264511.094c27940eeb70e774db3011b9b180fd.', STARTKEY => '\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/', ENDKEY => '\x00\x00\x06^\x87\xB1\xE0\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x004\x00\x00\x03\x00\x00&\x00\x00\x04\x00\x01''}
2020-10-14 09:47:50,621 INFO  [hbasefsck-pool1-t19] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 0927b941803c51576584ff1b6eaa8891, NAME => 'tsdb,\x00\x00d\x5CB"0\x00\x00\x01\x00\x0A\x98\x00\x00\x02\x00\x05\x0D\x00\x00\x03\x00\x03\xD7\x00\x00\x04\x00\x0A\xA5,1589289484255.0927b941803c51576584ff1b6eaa8891.', STARTKEY => '\x00\x00d\x5CB"0\x00\x00\x01\x00\x0A\x98\x00\x00\x02\x00\x05\x0D\x00\x00\x03\x00\x03\xD7\x00\x00\x04\x00\x0A\xA5', ENDKEY => '\x00\x00d\x5CB0@\x00\x00\x01\x00\x0A\x98\x00\x00\x02\x00\x04\xF5\x00\x00\x03\x00\x04\xF6\x00\x00\x04\x00\x0A\xAB'}
2020-10-14 09:47:50,621 INFO  [hbasefsck-pool1-t43] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 040f247ad3c3f4191c11d261b8082879, NAME => 'tsdb,\x00\x00_^\xB9\xE7\x00\x00\x00\x01\x00\x0A@\x00\x00\x02\x00\x04\x02\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x0AJ,1602581836946.040f247ad3c3f4191c11d261b8082879.', STARTKEY => '\x00\x00_^\xB9\xE7\x00\x00\x00\x01\x00\x0A@\x00\x00\x02\x00\x04\x02\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x0AJ', ENDKEY => '\x00\x00_^\xFE\xC9`\x00\x00\x01\x00\x0A@\x00\x00\x02\x00\x04\x04\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x0AJ'}
2020-10-14 09:47:51,620 WARN  [hbasefsck-pool1-t21] util.HBaseFsck: Unable to complete check or repair the region 'tsdb,\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag,1589367225052.0358cf6973c12495d8a6100f4582f409.'.
java.io.IOException: Region {ENCODED => 0358cf6973c12495d8a6100f4582f409, NAME => 'tsdb,\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag,1589367225052.0358cf6973c12495d8a6100f4582f409.', STARTKEY => '\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag', ENDKEY => '\x00\x00`^[O`\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05s\x00\x00\x03\x00\x05r\x00\x00\x04\x00\x0Ag'} failed to move out of transition within timeout 120000ms
	at org.apache.hadoop.hbase.util.HBaseFsckRepair.waitUntilAssigned(HBaseFsckRepair.java:149)
	at org.apache.hadoop.hbase.util.HBaseFsck.tryAssignmentRepair(HBaseFsck.java:2142)
	at org.apache.hadoop.hbase.util.HBaseFsck.checkRegionConsistency(HBaseFsck.java:2343)
	at org.apache.hadoop.hbase.util.HBaseFsck.access$1100(HBaseFsck.java:195)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1915)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1903)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2020-10-14 09:47:51,626 WARN  [hbasefsck-pool1-t48] util.HBaseFsck: Unable to complete check or repair the region 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.'.
java.io.IOException: Region {ENCODED => 09b306abe06352af702bcea64bb15f61, NAME => 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.', STARTKEY => '\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5', ENDKEY => '\x00\x00(]\xE7\xC9\xF0\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04\x08'} failed to move out of transition within timeout 120000ms
	at org.apache.hadoop.hbase.util.HBaseFsckRepair.waitUntilAssigned(HBaseFsckRepair.java:149)
	at org.apache.hadoop.hbase.util.HBaseFsck.tryAssignmentRepair(HBaseFsck.java:2142)
	at org.apache.hadoop.hbase.util.HBaseFsck.checkRegionConsistency(HBaseFsck.java:2343)
	at org.apache.hadoop.hbase.util.HBaseFsck.access$1100(HBaseFsck.java:195)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1915)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1903)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2020-10-14 09:47:51,627 WARN  [hbasefsck-pool1-t48] util.HBaseFsck: Skip region 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.'
ERROR: Region { meta => tsdb,\x00\x00\x0C\x5C\xE0\x01\xD0\x00\x00\x01\x00\x02\x05\x00\x00\x02\x00\x01\x82\x00\x00\x03\x00\x00\x10\x00\x00\x04\x00\x02\x1B,1589397686856.0c308622a2586fa038579ae2572d8f70., hdfs => hdfs://bdcluster/hbase/data/default/tsdb/0c308622a2586fa038579ae2572d8f70, deployed => , replicaId => 0 } not deployed on any region server.
Trying to fix unassigned region...
2020-10-14 09:47:51,626 WARN  [hbasefsck-pool1-t34] util.HBaseFsck: Unable to complete check or repair the region 'tsdb,\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/,1589377264511.094c27940eeb70e774db3011b9b180fd.'.
java.io.IOException: Region {ENCODED => 094c27940eeb70e774db3011b9b180fd, NAME => 'tsdb,\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/,1589377264511.094c27940eeb70e774db3011b9b180fd.', STARTKEY => '\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/', ENDKEY => '\x00\x00\x06^\x87\xB1\xE0\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x004\x00\x00\x03\x00\x00&\x00\x00\x04\x00\x01''} failed to move out of transition within timeout 120000ms
	at org.apache.hadoop.hbase.util.HBaseFsckRepair.waitUntilAssigned(HBaseFsckRepair.java:149)
	at org.apache.hadoop.hbase.util.HBaseFsck.tryAssignmentRepair(HBaseFsck.java:2142)
	at org.apache.hadoop.hbase.util.HBaseFsck.checkRegionConsistency(HBaseFsck.java:2343)
	at org.apache.hadoop.hbase.util.HBaseFsck.access$1100(HBaseFsck.java:195)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1915)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1903)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2020-10-14 09:47:51,628 WARN  [hbasefsck-pool1-t34] util.HBaseFsck: Skip region 'tsdb,\x00\x00\x06^\x85\x9B\x80\x00\x00\x01\x00\x01"\x00\x00\x02\x00\x00K\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01/,1589377264511.094c27940eeb70e774db3011b9b180fd.'
2020-10-14 09:47:51,626 WARN  [hbasefsck-pool1-t21] util.HBaseFsck: Skip region 'tsdb,\x00\x00`^\x12\xA2\xB0\x00\x00\x01\x00\x05\x04\x00\x00\x02\x00\x05*\x00\x00\x03\x00\x05+\x00\x00\x04\x00\x0Ag,1589367225052.0358cf6973c12495d8a6100f4582f409.'
ERROR: Region { meta => tsdb,\x00\x00a^\xB9\xBC\xD0\x00\x00\x01\x00\x0Ah\x00\x00\x02\x00\x00p\x00\x00\x03\x00\x00q\x00\x00\x04\x00\x0Al,1602577336806.0c72e1d1db96802e4823f0ede448429f., hdfs => hdfs://bdcluster/hbase/data/default/tsdb/0c72e1d1db96802e4823f0ede448429f, deployed => , replicaId => 0 } not deployed on any region server.
Trying to fix unassigned region...
ERROR: Region { meta => tsdb,\x00\x00\x0B^\xB1\xB7\xB0\x00\x00\x01\x00\x01\xE4\x00\x00\x02\x00\x00H\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x01\xEC,1589355732620.0ca3a2bf4cf091e97dbe26624c9757e6., hdfs => hdfs://bdcluster/hbase/data/default/tsdb/0ca3a2bf4cf091e97dbe26624c9757e6, deployed => , replicaId => 0 } not deployed on any region server.
Trying to fix unassigned region...
2020-10-14 09:47:58,791 INFO  [hbasefsck-pool1-t28] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 09c15fdb7274bc56650d40d2f8a82adc, NAME => 'tsdb,\x00\x00&\x5C\x0A\x1Ap\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x03\xF9\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x05\xCB,1589376226633.09c15fdb7274bc56650d40d2f8a82adc.', STARTKEY => '\x00\x00&\x5C\x0A\x1Ap\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x03\xF9\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x05\xCB', ENDKEY => '\x00\x00&\x5C\x0BA\xC0\x00\x00\x01\x00\x05\x9D\x00\x00\x02\x00\x00\x9F\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x05\xCE'}
2020-10-14 09:47:58,791 INFO  [hbasefsck-pool1-t14] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 037ba0dcb69e2453ae17b04682a0607a, NAME => 'tsdb,\x00\x005]\xB8\x0D\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C$,1589284372576.037ba0dcb69e2453ae17b04682a0607a.', STARTKEY => '\x00\x005]\xB8\x0D\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C$', ENDKEY => '\x00\x005]\xB9\xCF\xA0\x00\x00\x01\x00\x04W\x00\x00\x02\x00\x0C('}
省略。。。
2020-10-14 10:11:22,095 WARN  [hbasefsck-pool1-t16] util.HBaseFsck: Unable to complete check or repair the region 'tsdb,\x00\x00\x05^A7\xB0\x00\x00\x01\x00\x00\xFA\x00\x00\x02\x00\x00?\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x00\xFC,1589394403198.154794a27addf79de866da8693b03c28.'.
java.io.IOException: Region {ENCODED => 154794a27addf79de866da8693b03c28, NAME => 'tsdb,\x00\x00\x05^A7\xB0\x00\x00\x01\x00\x00\xFA\x00\x00\x02\x00\x00?\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x00\xFC,1589394403198.154794a27addf79de866da8693b03c28.', STARTKEY => '\x00\x00\x05^A7\xB0\x00\x00\x01\x00\x00\xFA\x00\x00\x02\x00\x00?\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x00\xFC', ENDKEY => '\x00\x00\x05^C\x15\xD0\x00\x00\x01\x00\x00\xFA\x00\x00\x02\x00\x03\x0E'} failed to move out of transition within timeout 120000ms
	at org.apache.hadoop.hbase.util.HBaseFsckRepair.waitUntilAssigned(HBaseFsckRepair.java:149)
	at org.apache.hadoop.hbase.util.HBaseFsck.tryAssignmentRepair(HBaseFsck.java:2142)
	at org.apache.hadoop.hbase.util.HBaseFsck.checkRegionConsistency(HBaseFsck.java:2343)
	at org.apache.hadoop.hbase.util.HBaseFsck.access$1100(HBaseFsck.java:195)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1915)
	at org.apache.hadoop.hbase.util.HBaseFsck$CheckRegionConsistencyWorkItem.call(HBaseFsck.java:1903)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2020-10-14 10:11:22,095 WARN  [hbasefsck-pool1-t16] util.HBaseFsck: Skip region 'tsdb,\x00\x00\x05^A7\xB0\x00\x00\x01\x00\x00\xFA\x00\x00\x02\x00\x00?\x00\x00\x03\x00\x00<\x00\x00\x04\x00\x00\xFC,1589394403198.154794a27addf79de866da8693b03c28.'
ERROR: Region { meta => tsdb,\x00\x00_^\xFE\xC9`\x00\x00\x01\x00\x0A@\x00\x00\x02\x00\x04\x04\x00\x00\x03\x00\x03\xF8\x00\x00\x04\x00\x0AJ,1602581836946.2bb46a923325fb29a936e83465887eb3., hdfs => hdfs://bdcluster/hbase/data/default/tsdb/2bb46a923325fb29a936e83465887eb3, deployed => , replicaId => 0 } not deployed on any region server.
Trying to fix unassigned region...

说明:执行fixAssigment会循环修复未被deploy的表。
注意日志中的输出

INFO  [hbasefsck-pool1-t48] util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {ENCODED => 09b306abe06352af702bcea64bb15f61, NAME => 'tsdb,\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5,1589273433052.09b306abe06352af702bcea64bb15f61.', STARTKEY => '\x00\x00(]\x1BG@\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04/\x00\x00\x03\x00\x03\x91\x00\x00\x04\x00\x05\xE5', ENDKEY => '\x00\x00(]\xE7\xC9\xF0\x00\x00\x01\x00\x05\xDF\x00\x00\x02\x00\x04\x08'}

这是由于hbase的Region状态迁移,观察hbase master(60010)界面会发现 。

Regions in Transition
Region	                        State	                                  RIT time (ms)
e12f459fc7da3e5937551a2f9484cbbd	tsdb,\x00\x00\x02^q\xD5\x00\x00\x00\x01\x00\x00\x97\x00\x00\x02\x00\x03\x09\x00\x00\x03\x00\x00&\x00\x00\x04\x00\x06\xCD,1589279163414.e12f459fc7da3e5937551a2f9484cbbd. state=PENDING_OPEN, ts=Wed Oct 14 09:06:28 CST 2020 (4117s ago), server=c7003,16020,1602637554384	4117515
省略。。。
Total number of Regions in Transition for more than 60000 milliseconds	141	
Total number of Regions in Transition	192	
(92 more regions in transition not shown)

随着时间推移这个Total number of Regions in Transition的数字会自动减少。
详细的region 状态迁移讲解请参考这篇博文

https://blog.csdn.net/lw_ghy/article/details/60780065

第2章 hbase修复详解

以下为摘抄自别人博客上的内容
新版本的 hbck 可以修复各种错误,修复选项是:

(1)-fix,向下兼容用,被-fixAssignments替代     
(2)-fixAssignments,用于修复region assignments错误     
(3)-fixMeta,用于修复meta表的问题,前提是HDFS上面的region info信息有并且正确。     
(4)-fixHdfsHoles,修复region holes(空洞,某个区间没有region)问题     
(5)-fixHdfsOrphans,修复Orphan region(hdfs上面没有.regioninfo的region)     
(6)-fixHdfsOverlaps,修复region overlaps(区间重叠)问题     
(7)-fixVersionFile,修复缺失hbase.version文件的问题     
(8)-maxMerge <n> (n默认是5),当region有重叠是,需要合并region,一次合并的region数最大不超过这个值。     
(9)-sidelineBigOverlaps ,当修复region overlaps问题时,允许跟其他region重叠次数最多的一些region不参与(修复后,可以把没有参与的数据通过bulk load加载到相应的region)     
(10)-maxOverlapsToSideline <n> (n默认是2),当修复region overlaps问题时,一组里最多允许多少个region不参与     
由于选项较多,所以有两个简写的选项     
(11) -repair,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps     
(12)-repairHoles,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans   

新版本的 hbck

(1)缺失hbase.version文件     
 加上选项 -fixVersionFile 解决     
(2)如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中     
 加上选项 -fixAssignments 解决     
(3)如果一个region在META表中,并且在regionserver的online region集合中,但是在hdfs上面没有     
 加上选项 -fixAssignments -fixMeta 解决,( -fixAssignments告诉regionserver close region),( -fixMeta删除META表中region的记录)     
(4)如果一个region在META表中没有记录,没有被regionserver服务,但是在hdfs上面有     
加上选项 -fixMeta -fixAssignments 解决,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录)     
(5)如果一个region在META表中没有记录,在hdfs上面有,被regionserver服务了     
加上选项 -fixMeta 解决,在META表中添加这个region的记录,先undeploy region,后assign     
(6)如果一个region在META表中有记录,但是在hdfs上面没有,并且没有被regionserver服务     
加上选项 -fixMeta 解决,删除META表中的记录     
(7)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region没有被服务     
加上选项 -fixAssignments 解决,assign这个region     
(8)如果一个region在META表中有记录,在hdfs上面也有,table是disabled的,但是这个region被某个regionserver服务了     
加上选项 -fixAssignments 解决,undeploy这个region     
(9)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region被多个regionserver服务了     
加上选项 -fixAssignments 解决,通知所有regionserver close region,然后assign region     
(10)如果一个region在META表中,在hdfs上面也有,也应该被服务,但是META表中记录的regionserver和实际所在的regionserver不相符     
加上选项 -fixAssignments 解决     

(11)region holes     
需要加上 -fixHdfsHoles ,创建一个新的空region,填补空洞,但是不assign 这个 region,也不在META表中添加这个region的相关信息     
(12)region在hdfs上面没有.regioninfo文件     
-fixHdfsOrphans 解决     
(13)region overlaps     
需要加上 -fixHdfsOverlaps     

说明:

(1)修复region holes时,-fixHdfsHoles 选项只是创建了一个新的空region,填补上了这个区间,还需要加上-fixAssignments -fixMeta 来解决问题,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录),所以有了组合拳 -repairHoles 修复region holes,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans     
(2) -fixAssignments,用于修复region没有assign、不应该assign、assign了多次的问题     
(3)-fixMeta,如果hdfs上面没有,那么从META表中删除相应的记录,如果hdfs上面有,在META表中添加上相应的记录信息     
(4)-repair 打开所有的修复选项,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps     

新版本的hbck从(1)hdfs目录(2)META(3)RegionServer这三处获得region的Table和Region的相关信息,根据这些信息判断并repair    

hbase报错web ui报错

在这里插入图片描述

The Load Balancer is not enabled which will eventually cause performance degradation in HBase as Regions will not be distributed across all RegionServers. The balancer is only expected to be disabled during rolling upgrade scenarios.

在HBase shell中执行,balance_switch true 启动平衡器后,再次查看HBase Web UI,警告消失。

Region splits are disabled. This may be the result of HBCK aborting while running in repair mode. Manually enable splits from the HBase shell, or re-run HBCK in repair mode.

在HBase shell中执行splitormerge_enabled ‘SPLIT’

hbase(main):030:0> splitormerge_enabled ‘MERGE’

Region merges are disabled. This may be the result of HBCK aborting while running in repair mode. Manually enable merges from the HBase shell, or re-run HBCK in repair mode.

在HBase shell中执行splitormerge_enabled ‘MERGE’

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HBase的热点问题通常是由于某个Region Server上的某个Region负载过重而导致的。修复一个热点问题需要从以下几个方面入手: 1. 找出负载过重的Region 可以通过HBase的Web UI或者HBase shell命令来查看每个Region的负载情况。一般来说,负载过重的Region会有很高的读写请求数量。 2. 将负载过重的Region迁移到其他Region Server上 可以通过HBase shell命令来手动迁移Region。首先需要找到目标Region Server,然后将负载过重的Region迁移到该Region Server上。 3. 均衡Region分布 可以通过HBase shell命令来启用Region均衡功能,让HBase自动将Region分布均衡到各个Region Server上。 下面是一个示例,演示如何手动迁移一个负载过重的Region: 1. 查看Region的负载情况 ``` hbase shell hbase(main):001:0> status 'databasetable' ``` 2. 找到负载过重的Region 在输出结果中查找请求数量最高的Region。 3. 手动迁移Region ``` hbase shell hbase(main):001:0> move 'regionname', 'servername' ``` 其中,`regionname`是需要迁移的Region的名称,`servername`是目标Region Server的名称。 4. 检查Region负载情况 ``` hbase shell hbase(main):001:0> status 'databasetable' ``` 确保已经成功将负载过重的Region迁移到其他Region Server上。 需要注意的是,手动迁移Region可能会导致数据的不一致性。如果需要保证数据的一致性,可以使用HBase的自动均衡功能来进行Region的迁移。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值