hbase删除表报错的解决方法
hbase建表时,如果snappy或者其他压缩没有安装好,在建表时会出现挂起的状态,并且这张表也删除不掉,还会给集群带来影响,最明显的影响是无法平衡,下面是报错的现状,和解决方法:
详细内容请参考:http://www.itinit.net/thread-1924-1-1.html
hbase(main):012:0> drop 'T21_0513_201301_bigtable'
ERROR: org.apache.hadoop.hbase.TableNotDisabledException:
org.apache.hadoop.hbase.TableNotDisabledException: T21_0513_201301_bigtable
at
org.apache.hadoop.hbase.master.HMaster.checkTableModifiable(HMaster.java:1240)
at
org.apache.hadoop.hbase.master.handler.TableEventHandler.<init>(TableEventHandler.java:70)
at
org.apache.hadoop.hbase.master.handler.DeleteTableHandler.<init>(DeleteTableHandler.java:42)
at org.apache.hadoop.hbase.master.HMaster.deleteTable(HMaster.java:1099)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
at
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1345)
below is the excerpts from webui:
Regions in TransitionRegionStatebd8d2bf3ef04d0f8d3dac5ca2f612f42T21_0513_201301_bigtable,27100750000000000000000000000000000000000000000000000000000,1358994123350.bd8d2bf3ef04d0f8d3dac5ca2f612f42.
state=PENDING_OPEN, ts=Thu Jan 24 16:58:34 CST 2013 (699s ago),
server=hadoop1,60020,1358993820407
四种方法:
1.) Shut the HBase cluster - go to ZKcli and rmr /hbase - Start HBase
2.) Move the table, use hbck -fixMeta -fixAssignments, restart the HBase
(not a great option if there is data on the table)
3.) Force an assign on the region for the table and see if it clears it
up
(Should create a new znode)
4.) Go to ZK Cli and check /hbase for unassigned regions and other data
correlating with that region and remove it, then restart HBase
disable 'table_name'
drop 'tab-name'