Hbase Error “ERROR: KeeperErrorCode = NoNode for /hbase/master”

别等时光非礼了梦想. 提交于 2020-05-09 06:49:47

问题


While executing any command in hbase shell, I am receiving the following error "ERROR: KeeperErrorCode = NoNode for /hbase/master" in hbase shell.

Started HBASE :

    HOSTCHND:hbase-2.0.0 gvm$ ./bin/start-hbase.sh
    localhost: running zookeeper, logging to /usr/local/Cellar/hbase-2.0.0/bin/../logs/hbase-gvm-zookeeper-HOSTCHND.local.out
    running master, logging to /usr/local/Cellar/hbase-2.0.0/logs/hbase-gvm-master-HOSTCHND.local.out
    : running regionserver, logging to /usr/local/Cellar/hbase-2.0.0/logs/hbase-gvm-regionserver-HOSTCHND.local.out

While Checking status in HBASE SHELL :

    hbase(main):001:0> status

    ERROR: KeeperErrorCode = NoNode for /hbase/master

    Show cluster status. Can be 'summary', 'simple', 'detailed', or 'replication'. The
    default is 'summary'. Examples:

    hbase> status
    hbase> status 'simple'
    hbase> status 'summary'
    hbase> status 'detailed'
    hbase> status 'replication'
    hbase> status 'replication', 'source'
    hbase> status 'replication', 'sink'

   Took 9.4096 seconds                                                             
   hbase(main):002:0> 

hbase-site.xml

<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
</property>
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/Cellar/hbase-2.0.0/hbasestorage/zookeeper</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
</property>
</configuration>

Please let me know why this error happens while executing hbase commands?


回答1:


replace or add these configuration to the hbase-site.xml file in the conf folder of hbase dir, and then rerun the "hbase shell" command and then "list" command to view the tables present.

<?xml version="1.0" encoding="utf-8" ?>

<!--Keeper Error fix-->
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:8020/hbase</value>
    </property>
        <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
        <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2182</value>
    </property>
            <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/var/lib/hbase/zookeeper</value>
    </property>
</configuration>



回答2:


First, make sure that the IP and host name mapping has been set up in the hosts file.

Second, modify the HBase temporary directory location. the temporary directory data will be emptied regularly. The default of the temporary directory is on the /tmp change them in hbase-site.xml

<property>
        <name>hbase.tmp.dir</name>
        <value>/hbase/tmp</value>
        <description>Temporary directory on the local filesystem.</description>
</property>

If it doesn't works . clean hbase data directory ,also clean the metadata in zookeeper restart hbase again .

what is more ,check your ntp & firewall .




回答3:


I know it is not related with spark but I was getting following errors;

Caused by: java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/meta-region-server

Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/meta-region-server

Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/hbasei

Setting hbase.rootdir configuration resolved my problems while creating HBaseContext;

val config = HBaseConfiguration.create
config.set("hbase.zookeeper.quorum", "addresses")
config.setInt("hbase.zookeeper.property.clientPort", port)

config.set("hbase.rootdir","/apps/hbase/data") // adding this one resolves my problems

val hbaseContext = new HBaseContext(sc, config)

So you may try add that config into hbase-site.xml.




回答4:


In my case I was receiving this "ERROR: KeeperErrorCode = NoNode for /hbase/master" because HMaster process was not running.

Check with jps command.

hdusr@hdp-master-1:$ jps
27504 Main
32755 DataNode
23316 HQuorumPeer
27957 Jps
646 SecondaryNameNode
27097 HMaster
23609 HRegionServer
1562 Master
1722 Worker
911 ResourceManager
32559 NameNode
1167 NodeManager

If you don't see HMaster process as in above list then that's the reason for ERROR: KeeperErrorCode = NoNode. in hbase shell.

In $HBASE_HOME/logs directory check for hbase-***-master.log for specific error.

In my case there were 2 reasons ,

First :

WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out

Which I solved by replacing 'localhost' with 'my machine's hostname' in hbase-site.xml. from this answer

Second :

WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out

This was because the hdfs port in hbase-site.xml was different than that in core-site.xml of hadoop.



来源:https://stackoverflow.com/questions/50621931/hbase-error-error-keepererrorcode-nonode-for-hbase-master

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!