表在HBase中既不启用也不禁用
我面临一个奇怪的问题。我通过API访问我的HBase表。在行刑的中途,我得到了一个没有为我的桌子“x”服务的区域。但我的HRegionServers运行良好 当我试图从HBase Shell中列出表时,我找不到我的表“x”。当我尝试禁用表“x”时,它抛出了一个TableNotEnabledException,当我尝试启用表“x”时,它抛出了一个TableNotDisabledException 附件是我得到的例外:表在HBase中既不启用也不禁用,hbase,Hbase,我面临一个奇怪的问题。我通过API访问我的HBase表。在行刑的中途,我得到了一个没有为我的桌子“x”服务的区域。但我的HRegionServers运行良好 当我试图从HBase Shell中列出表时,我找不到我的表“x”。当我尝试禁用表“x”时,它抛出了一个TableNotEnabledException,当我尝试启用表“x”时,它抛出了一个TableNotDisabledException 附件是我得到的例外: hbase(main):002:0> disable 'x' ERROR
hbase(main):002:0> disable 'x'
ERROR: org.apache.hadoop.hbase.TableNotEnabledException: org.apache.hadoop.hbase.TableNotEnabledException: x
at org.apache.hadoop.hbase.master.handler.DisableTableHandler.<init>(DisableTableHandler.java:75)
at org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1154)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)
Here is some help for this command:
Start disable of named table: e.g. "hbase> disable 't1'"
hbase(main):003:0> enable 'x'
ERROR: org.apache.hadoop.hbase.TableNotDisabledException: org.apache.hadoop.hbase.TableNotDisabledException: x
at org.apache.hadoop.hbase.master.handler.EnableTableHandler.<init>(EnableTableHandler.java:74)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)
Here is some help for this command:
Start enable of named table: e.g. "hbase> enable 't1'"
hbase(main):004:0>
hbase(主):002:0>禁用“x”
错误:org.apache.hadoop.hbase.TableNotEnabledException:org.apache.hadoop.hbase.TableNotEnabledException:x
位于org.apache.hadoop.hbase.master.handler.DisableTableHandler.(DisableTableHandler.java:75)
位于org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1154)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
在org.apache.hadoop.hbase.ipc.writeablerpcengine$Server.call上(writeablerpcengine.java:364)
位于org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)
以下是此命令的一些帮助:
开始禁用命名表:例如“hbase>禁用“t1”
hbase(主):003:0>启用“x”
错误:org.apache.hadoop.hbase.TableNotDisabledException:org.apache.hadoop.hbase.TableNotDisabledException:x
位于org.apache.hadoop.hbase.master.handler.EnableTableHandler.(EnableTableHandler.java:74)
位于org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1142)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
在org.apache.hadoop.hbase.ipc.writeablerpcengine$Server.call上(writeablerpcengine.java:364)
位于org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)
以下是此命令的一些帮助:
启动命名表的启用:例如“hbase>启用“t1”
hbase(主):004:0>
我以前也遇到过类似的问题。问题是因为动物园管理员拿着桌子。
因此,我按照以下步骤手动删除了该表
hbase zkcli
命令进入hbase zookeper客户端模式Delete/hbase/table/x
我刚刚遇到这个问题,结果是某个区域服务器已启动,但由于某种原因无法与之联系。我没有尝试调试,而是重新启动了区域服务器,修复了所有问题 事件顺序:
我在生产上也遇到过类似的问题。问题是特定的Hbase表元已损坏。所以我用下面的方法从zookeeper中手动删除了这个表
一,。使用hbase zkcli命令进入hbase zookeper客户端模式
二,。使用Delete/hbase/table/x命令删除表
三,。使用Delete/hbase/table lock/x命令删除表
执行上述命令后,重新启动了Hbase,但问题仍然出现,因此我使用下面的命令从Hbase系统表中删除了Hbase表的区域
一,。使用hbase shell命令输入hbase
二,。使用以下命令删除处于过渡状态的表格区域
删除所有'hbase:meta','XXX,Table_region'。以下步骤对我很有用:
get'hbase:meta',''table:state'
\x08\x00
(启用)或\x08\x01
(禁用)put'hbase:meta'、''、'table:state'、“\b\0”
以启用该表你好我发现我的x表被我的zookeeper持有,我使用上面的命令删除了该表!!但问题依然存在!!您可以使用以下命令清理元区域:hbase hbck-fixMeta-fixmassignments。我想它应该可以工作。我也遇到过这样的情况,删除/hbase/table/x并重新启动集群并没有做到这一点;但如果我在那之后执行毗瑟奴的建议,它就成功了。