hbase error zookeeper exists在3次重试后失败

42fyovps  于 2021-06-09  发布在  Hbase
关注(0)|答案(6)|浏览(377)

我在ubuntu中使用hbase 0.94.8独立模式。它的工作很好,我可以做的每一个操作在hbase shell。但在我记录了我的系统后,它给出了以下错误

15/07/28 15:10:30 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
15/07/28 15:10:30 WARN zookeeper.ZKUtil: hconnection-0x14ed40513350009 Unable to set watcher on znode (/hbase)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:172)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:450)
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.checkIfBaseNodeAvailable(ZooKeeperNodeTracker.java:208)
    at org.apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.java:77)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:885)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)

是的,我找了很多。我发现一些信息zookeeper exists在重试3次后失败。这个错误可能是因为zookeeper被停止了。但我不知道要重新启动它。我试着开始 Hbase 以及 thrift 再次但仍然是这个问题。
此命令 ps axww | grep QuorumPeerMain 提供以下输出:

6162 pts/2    S+     0:00 grep --color=auto QuorumPeerMain

如果我重新启动系统,hbase就会开始工作。但我需要合适的解决方案。
临时解决方案
使用以下命令我grep这个hbase进程:

ps -fe grep | hbase

然后杀死hbase的所有进程:

kill -9 4555//assuming 4555 is process id of hbase

然后用sudo和thrift重新启动hbase,它开始工作,但我想要永久的解决方案。因为如果我在服务器上使用hbase(意味着不是本地机器),我不能每次都重新启动hbase。

r7knjye2

r7knjye21#

问题:
hbase error zookeeper exists failed after 3 retries清楚地表明zookeeper quorum未运行-最可能的原因可能是与中的zookeeper.quorum设置不一致 conf/hbase-site.xml ,最小值必须是:

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/testuser/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/testuser/zookeeper</value>
  </property>
</configuration>

在下一节中,我们将简要介绍为什么需要zookeeper,以及如何验证它是否正在运行。
概述:
从你的文本预假设(独立设置)-你把事情弄混了。zookeeper简单的说就是管理hbase,而且是必须的。
默认情况下,hbase本身处理zookeeper setup、start stop(尽管可以更改)以验证对文件的查看 conf/hbase-evn.sh (在hbase目录中)必须有一行:

export HBASE_MANAGES_ZK=true

基本上告诉hbase是否应该管理自己的zookeeper示例。如果设置为 false ,编辑到 true .
现在,为了验证,有一个有用的命令(忘记 ps 然后 grep ):

$ jps

该命令将列出机器上的所有java进程(hbase本身就是一个java应用程序),即可能的输出必须是(对于最小的独立hbase设置):

62019 Jps
61098 HMaster        
61233 HRegionServer     
61003 HQuorumPeer

不要只终止hbase进程,而是使用start-stop实用程序:

$ ./bin/stop-hbase.sh

进行必要的更改并重新启动:

$ ./bin/start-hbase.sh

p、 我可能(完全)误解了你的问题,请在评论中告诉我,我会再次回复你,并为即将到来的so访客找到正确的解决方案。

jchrr9hc

jchrr9hc2#

如果这只是一个开始,这应该帮助你。我希望你知道zookeeper应该在我们启动hbase之前启动并运行。

f3temu5u

f3temu5u3#

当您查看日志文件时,您会发现zookeeper无法连接到端口。例如, 543210 . 这仅仅意味着您以前在计算机上安装过hadoop,因此hbase会尝试查找以前hadoop安装的zookeeper。请重命名现有的hadoop设置或从系统中完全删除hadoop(但请注意,zookeeper似乎在删除后仍保留了一些内容。)
重命名hadoop安装文件夹
从.bashrc文件中删除条目
重新启动计算机

dy1byipe

dy1byipe4#

看来这个问题和 hbase 或者 zookeeper . 这是一个系统设置问题。
我在macosx更新后也遇到了同样的问题。
原来dns设置被更新更改了。我在hbase日志中看到:

2017-06-09 11:40:18,454 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster
    at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:143)
[SKIP]
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2432)
Caused by: java.lang.NullPointerException
    at org.apache.hadoop.net.DNS.reverseDns(DNS.java:92)

删除中的dns设置后 hbase-site.xml 这个问题出现了分歧:

<!--property>
    <name>hbase.zookeeper.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.regionserver.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.master.dns.interface</name>
    <value>lo0</value>
  </property-->
qq24tv8q

qq24tv8q5#

我的在和sudo指挥部合作

hbase/bin$sudo ./start-habase.sh
7hiiyaii

7hiiyaii6#

我得到了几乎相同的错误“zookeeper exists failed after 4 retries”。这是由于在没有连接到端口2181的权限的情况下运行./start-hbase.sh造成的。结果证明,解决方案非常简单:

sudo ./start-hbase.sh

我使用了nabeel ahmed帖子中的hbase-site.xml配置。

相关问题