我面临一个奇怪的问题。我通过API访问我的HBase表。在执行过程中途,我为表'x'获得了RegionNotServing。但我的HRegionServers工作正常。
当我尝试从HBase Shell列出表时,我找不到表'x'。当我尝试禁用我的表'x'时,它抛出了一个TableNotEnabledException,当我尝试启用我的表'x'时,它向我扔了一个TableNotDisabledException。
附件是我得到的执行:
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>
答案 0 :(得分:16)
之前我遇到过类似的问题。问题是因为Zookeeper拿着桌子。 所以我按照以下步骤手动删除了表格
hbase zkcli
命令delete /hbase/table/x
答案 1 :(得分:3)
以下步骤对我有用:
rm -rf package-lock.json node_modules
npm install
get 'hbase:meta', '<AFFECTED_TABLE_NAME>', 'table:state'
(启用)或\x08\x00
(禁用)\x08\x01
使表启用答案 2 :(得分:1)
我在生产上也遇到过类似的问题。问题是特定的Hbase表元已损坏。所以我使用下面的方法从Zookeeper手动删除了表格
1。使用hbase zkcli命令进入hbase zookeper客户端模式
2。使用命令delete / hbase / table / x删除表
3。使用命令delete / hbase / table-lock / x
执行完上述命令后,重新启动了Hbase,但仍然出现问题,因此我使用以下命令从Hbase系统表中删除了Hbase表的区域
1。使用hbase shell命令进入hbase
2。使用以下命令删除处于过渡状态的表区域
删除所有'hbase:meta','XXX,Table_region。'
答案 3 :(得分:0)
我刚刚遇到这个问题,结果发现区域服务器已启动但由于某种原因无法访问。我没有尝试调试这个,而是重新启动了区域服务器,这解决了所有问题。
事件顺序:
答案 4 :(得分:0)
这一系列动作对我有帮助:
$HBASE_HOME/bin/hbase shell
- 打开 hbase shellhbase(main):003:0> list
- 放置 list 命令以确保表存在hbase(main):004:0> enable "table name"
- 启用表格仅此而已!现在可以从 phoenix 删除该表。