Hbase无法drop table
Version:HDP3.1.0-78
Hbase2.1.6
报错
hbase(main):017:0* disable 'COC_CUSTOMER_GROUP_20201027'ERROR: Table COC_CUSTOMER_GROUP_20201027 is disabled!For usage try 'help "disable"'Took 1.2053 secondshbase(main):018:0> drop 'COC_CUSTOMER_GROUP_20201027'ERROR: Table org.apache.hadoop.hbase.TableNotDisabledException: Not DISABLED; tableName=COC_CUSTOMER_GROUP_20201027, state=ENABLINGat org.apache.hadoop.hbase.master.HMaster.checkTableModifiable(HMaster.java:2644)at org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure.prepareDelete(DeleteTableProcedure.java:238)at org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure.executeFromState(DeleteTableProcedure.java:91)at org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure.executeFromState(DeleteTableProcedure.java:58)at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:189)at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:965)at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1723)at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1462)at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$1200(ProcedureExecutor.java:78)at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:2039)should be disabled!For usage try 'help "drop"'Took 0.2507 seconds
解决办法
hbase hbck -j hbase-hbck2-1.0.0-SNAPSHOT.jar setTableState 'COC_CUSTOMER_GROUP_20201027' DISABLED
新版本hbase setTableState 参数注释如下
setTableState <TABLENAME> <STATE>Possible table states: ENABLED, DISABLED, DISABLING, ENABLINGTo read current table state, in the hbase shell run:hbase> get 'hbase:meta', '<TABLENAME>', 'table:state'A value of \x08\x00 == ENABLED, \x08\x01 == DISABLED, etc.An example making table name 'user' ENABLED:$ HBCK2 setTableState users ENABLEDReturns whatever the previous table state was.
执行后,表状态正常,可以正常操作
