在操作hbase,刪除表是遇到org.apache.hadoop.hbase.TableNotDisabledException異常,遺產信息如下:
org.apache.hadoop.hbase.TableNotDisabledException: org.apache.hadoop.hbase.TableNotDisabledException: test
at org.apache.hadoop.hbase.master.HMaster.checkTableModifiable(HMaster.java:1740)
at org.apache.hadoop.hbase.master.handler.TableEventHandler.prepare(TableEventHandler.java:86)
at org.apache.hadoop.hbase.master.HMaster.deleteTable(HMaster.java:1576)
at org.apache.hadoop.hbase.master.MasterRpcServices.deleteTable(MasterRpcServices.java:463)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:44229)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2035)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:745)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:212)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:223)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:127)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:96)
at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3214)
at org.apache.hadoop.hbase.client.HBaseAdmin.deleteTable(HBaseAdmin.java:624)
at org.apache.hadoop.hbase.client.HBaseAdmin.deleteTable(HBaseAdmin.java:606)
at com.xdata.Util.HbaseDao.deleteHtable(HbaseDao.java:117)
at hbase.test.MainTest.main(MainTest.java:19)
Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.TableNotDisabledException): org.apache.hadoop.hbase.TableNotDisabledException: test
at org.apache.hadoop.hbase.master.HMaster.checkTableModifiable(HMaster.java:1740)
at org.apache.hadoop.hbase.master.handler.TableEventHandler.prepare(TableEventHandler.java:86)
at org.apache.hadoop.hbase.master.HMaster.deleteTable(HMaster.java:1576)
at org.apache.hadoop.hbase.master.MasterRpcServices.deleteTable(MasterRpcServices.java:463)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:44229)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2035)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:745)
at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1449)
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1653)
at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1711)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.deleteTable(MasterProtos.java:40324)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$5.deleteTable(HConnectionManager.java:1883)
at org.apache.hadoop.hbase.client.HBaseAdmin$3.call(HBaseAdmin.java:628)
at org.apache.hadoop.hbase.client.HBaseAdmin$3.call(HBaseAdmin.java:624)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:120)
... 6 more
解決這個問題方法是先將改table,disable,然後再珊,代碼如下
HBaseAdmin admin =new HBaseAdmin(conf);
admin.disableTable(tableName)
admin.deleteHtable(tableName);