刪除hbase表時 org.apache.hadoop.hbase.TableNotDisabledException 解決方法

在操作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);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章