No such column family error


You may encounter an exception like this:

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:7894)
        at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6925)
        at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2027)
        at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33644)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2191)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:183)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:163)

Most likely, you have a versioning problem: you are using hbase-client version 2.x.x with the server version 1.x.x. Also, you are trying to call HBase Admin API functions.

The fact is that the hbase-client version 2.x.x can send only regular get, scan, put, delete requests to the hbase 1.x.x server, and the Admin API doesn’t work.

Confirmation: https://issues.apache.org/jira/browse/HBASE-19145.

Possible solutions to the problem:

  1. If you have the ability to install the hbase-client 1.x.x version, install it;
  2. If this is not possible, and you definitely need to use the hbase-client 2.x.x version (for example, because of the shadow protobuf classes, added since 2.x.x) – do not use the Admin API and test all functionality very careful;
  3. Try to use hbase-shaded-client 1.x.
  4. If you still need to use the Admin API and need to use hbase-client 2.x.x, upgrade your HBase server to version 2.x.x.