千家信息网

hbase删除表报错的解决方法

发表于:2024-10-05 作者:千家信息网编辑
千家信息网最后更新 2024年10月05日,hbase建表时,如果snappy或者其他压缩没有安装好,在建表时会出现挂起的状态,并且这张表也删除不掉,还会给集群带来影响,最明显的影响是无法平衡,下面是报错的现状,和解决方法:详细内容请参考:ht
千家信息网最后更新 2024年10月05日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.(TableEventHandler.java:70) at org.apache.hadoop.hbase.master.handler.DeleteTableHandler.(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'
0