关于生产环境HBase读写偶发性org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException

具体报错信息如下:

... 1 more
 at org.apache.hadoop.hbase.protobuf.ProtobufUtil.handleRemoteException(ProtobufUtil.java:269)
 at org.apache.hadoop.hbase.client.RegionServerCallable.call(RegionServerCallable.java:129)
 at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:107)
 at org.apache.hadoop.hbase.client.HTable.get(HTable.java:384)
 at org.apache.hadoop.hbase.client.HTable.get(HTable.java:358)
 at org.apache.hadoop.hbase.MetaTableAccessor.getTableState(MetaTableAccessor.java:1118)
 at org.apache.hadoop.hbase.client.ConnectionImplementation.getTableState(ConnectionImplementation.java:2039)
 at org.apache.hadoop.hbase.client.ConnectionImplementation.isTableDisabled(ConnectionImplementation.java:630)
 at org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:219)
 at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:105)
 at org.apache.hadoop.hbase.client.HTable.get(HTable.java:384)
 at org.apache.hadoop.hbase.client.HTable.get(HTable.java:358)
 at com.ifeng.ai.api.ua.comm.HbaseComm.getRowCellsAsMap(HbaseComm.kt:77)
 at com.ifeng.ai.api.ua.comm.HbaseComm.getProfileLastDay(HbaseComm.kt:26)
 at com.ifeng.ai.api.ua.controller.ProfileControllerV2$startReceive$$inlined$repeat$lambda$1.invokeSuspend(ProfileControllerV2.kt:166)
 at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
 at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase:meta,,1.1588230740 in table 'hbase:meta', {TABLE_ATTRIBUTES => {IS_META => 'true', coprocessor$1 => '|org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint|536870911|'}, {NAME => 'info', BLOOMFILTER => 'NONE', VERSIONS => '10', IN_MEMORY => 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 => 'true', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '8192', REPLICATION_SCOPE => '0'}
 at org.apache.hadoop.hbase.regionserver.HRegion.checkFamily(HRegion.java:7973)
 at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6994)
 at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2110)
 at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34946)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)
 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)

由于用户画像存储在HBase需要大量查询,但是观察日志发现偶尔会有Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase,然后本地开发环境时有时无,后来一顿搜,发现是java客户端版本问题.

我司HBase集群是1.3.1版本,然后我用的是hbase-client是2.3.3版本,换到1.4.13版本后观察异常消失.

未经允许不得转载:鹞之神乐 » 关于生产环境HBase读写偶发性org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏