首页 > 解决方案 > Hbase 快照还原失败:TableExistsException

问题描述

还原/克隆失败并显示以下内容:

clone_snapshot 'my_snap', 'my_table'

ERROR: org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: Couldn't clone the snapshot={ ss=my_snap table=my_table type=FLUSH } on table=my_table
    at org.apache.hadoop.hbase.master.snapshot.SnapshotManager.cloneSnapshot(SnapshotManager.java:693)
    at org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:764)
    at org.apache.hadoop.hbase.master.MasterRpcServices.restoreSnapshot(MasterRpcServices.java:1274)
    at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:55716)
    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)
Caused by: org.apache.hadoop.hbase.TableExistsException: my_table
    at org.apache.hadoop.hbase.master.handler.CreateTableHandler.checkAndSetEnablingTable(CreateTableHandler.java:161)
    at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:129)
    at org.apache.hadoop.hbase.master.snapshot.CloneSnapshotHandler.prepare(CloneSnapshotHandler.java:92)
    at org.apache.hadoop.hbase.master.snapshot.SnapshotManager.cloneSnapshot(SnapshotManager.java:685)
    ... 7 more

否则 Hbase / HDFS 的表不存在

hbase(main):007:0> disable 'my_table'
ERROR: Table my_table does not exist.

hbase(main):008:0> drop 'my_table'
ERROR: Table my_table does not exist.

hbase(main):006:0> is_enabled 'my_table'
ERROR: Unknown table my_table!

系统表以其他方式显示全新安装:

hbase(main):002:0> scan 'hbase:meta'
ROW                                                                  COLUMN+CELL                                                                                                                                                                                            
 hbase:namespace,,1587169536827.05256bd9dfa93d08b96b1a1019118082.    column=info:regioninfo, timestamp=1587418869604, value={ENCODED => 05256bd9dfa93d08b96b1a1019118082, NAME => 'hbase:namespace,,1587169536827.05256bd9dfa93d08b96b1a1019118082.', STARTKEY => '', ENDKEY
                                                                      => ''}                                                                                                                                                                                                
 hbase:namespace,,1587169536827.05256bd9dfa93d08b96b1a1019118082.    column=info:seqnumDuringOpen, timestamp=1587418869604, value=\x00\x00\x00\x00\x00\x00\x00\x0E                                                                                                          
 hbase:namespace,,1587169536827.05256bd9dfa93d08b96b1a1019118082.    column=info:server, timestamp=1587418869604, value=my_server:60020                                                                                                       
 hbase:namespace,,1587169536827.05256bd9dfa93d08b96b1a1019118082.    column=info:serverstartcode, timestamp=1587418869604, value=1587418822093                                                                                                                              
1 row(s) in 0.2970 seconds

hbase(main):003:0> scan 'hbase:namespace'
ROW                                                                  COLUMN+CELL                                                                                                                                                                                            
 default                                                             column=info:d, timestamp=1587169538663, value=\x0A\x07default                                                                                                                                          
 hbase                                                               column=info:d, timestamp=1587169538693, value=\x0A\x05hbase                                                                                                                                            
2 row(s) in 0.0580 seconds

以及 ZK:

$ /usr/bin/zookeeper-client -server my_server:2181 ls /hbase/table
Connecting to my_server:2181
.... truncated for brevity ...    
WatchedEvent state:SyncConnected type:None path:null
[hbase:meta, hbase:namespace]

该集群是一个长期存在的独立集群,最近清理了 Hbase(1.1) HDFS 目录并重新启动了所有组件

没有其他消费者使用自动取款机

标签: hbase

解决方案


这实际上是由 ZK 条目引起的

来自一些旧集群的剩余 ZK 记录隐藏了问题(在我的情况下是 /hbase 与 /hbase_dr) - 请注意


推荐阅读