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
    24
    hbase(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'
  • 解决:

  1. 对于网上的说法很多,大部分人说是ip,主机名映射的问题,ubuntu 需要将/etc/hosts 中的127.0.1.1 修改为 127.0.0.1。这个问题主要就是hadoop异常,如果是刚启动的集群就需要检查一下配置文件,如果集群之前是正常的这时我们就需要查看一下各个节点是否异常。
  2. 的错误出现在节点异常,修复后重启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
    24
    hbase(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里面的表信息删除,具体操作如下:

  1. 运行命令
    hbase zkcli

  2. 删除表信息,如我这里表为‘t_2’
    delete /hbase/table/t_2

  3. 操作信息如下

    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

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器