HBase--PleaseHoldException和TableNotDisabledException
解决问题的能力,就是属于经验的一部分。慢慢积累,今天操作hbase的时候报了两个错误,PleaseHoldException和TableNotDisabledException,具体异常信息如下:
PleaseHoldException
- 异常信息:
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
具体日志如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24hbase(main):001:0> enable 't_2'
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase-0.98.8/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2426)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1956)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1972)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:41473)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:74)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Here is some help for this command:
Start enable of named table:
hbase> enable 't1'
hbase> enable 'ns1:t1'解决:
- 对于网上的说法很多,大部分人说是ip,主机名映射的问题,
ubuntu 需要将/etc/hosts 中的127.0.1.1 修改为 127.0.0.1
。这个问题主要就是hadoop异常,如果是刚启动的集群就需要检查一下配置文件,如果集群之前是正常的这时我们就需要查看一下各个节点是否异常。 - 我的错误出现在节点异常,修复后重启hadoop就行了,这个问题有些不确定因素展示只能提示到这里,以后要时候新发现会过来再次更新该博客。
TableNotDisabledException
异常信息:
ERROR: org.apache.hadoop.hbase.TableNotDisabledException:具体日志如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24hbase(main):001:0> enable 't_2'
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase-0.98.8/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
ERROR: org.apache.hadoop.hbase.TableNotDisabledException: t_2
at org.apache.hadoop.hbase.master.handler.EnableTableHandler.prepare(EnableTableHandler.java:111)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1961)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1972)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:41473)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:74)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Here is some help for this command:
Start enable of named table:
hbase> enable 't1'
hbase> enable 'ns1:t1'
我在enable
或者disable
的时候报错,TableNotDisabledException。
- 解决
我们需要将zookeeper里面的表信息删除,具体操作如下:
运行命令
hbase zkcli删除表信息,如我这里表为‘t_2’
delete /hbase/table/t_2操作信息如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#######################1. 连接到zk客户端 ###########################################
[root@xxo04 ~]# hbase zkcli
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase-0.98.8/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Connecting to xxo05:2181,xxo04:2181,xxo06:2181
Welcome to ZooKeeper!
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
JLine support is enabled
#######################2. 查看 ###########################################
[zk: xxo05:2181,xxo04:2181,xxo06:2181(CONNECTED) 3] ls /
[hbase, zookeeper]
[zk: xxo05:2181,xxo04:2181,xxo06:2181(CONNECTED) 4] ls /hbase
[meta-region-server, backup-masters, region-in-transition, draining, table, running, table-lock, balancer, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs]
[zk: xxo05:2181,xxo04:2181,xxo06:2181(CONNECTED) 5] ls /hbase/table
[hbase:meta, courses, hbase:namespace, t_2, t_3]
####################3. 执行删除操作 ###################################
[zk: xxo05:2181,xxo04:2181,xxo06:2181(CONNECTED) 0] delete /hbase/table/t_2
[zk: xxo05:2181,xxo04:2181,xxo06:2181(CONNECTED) 5] ls /hbase/table ##查看
[hbase:meta, courses, hbase:namespace, t_3]
####################4. enable ok ###################################
hbase(main):002:0> enable 't_2'
0 row(s) in 0.1630 seconds
- 如果任然不行执行修复命令:hbase hbck -fixMeta -fixAssignments