Hbase错误zookeeper存在3次重定时后失败

Hbase错误zookeeper存在3次重定时后失败,hbase,apache-zookeeper,Hbase,Apache Zookeeper,我在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

我在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已停止。但我不知道要重新启动它。我试图再次启动
Hbase
thrift
,但这仍然是个问题

此命令
ps axww | grep qourumpeermain
提供以下输出:

 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。

如果它只是启动zookeeper,应该可以帮助您。我希望您知道,在我们启动hbase之前,zookeeper应该已经启动并运行

问题

Hbase错误zookeeper存在3次重试后失败 明确表示zookeeper仲裁未运行-最可能的原因可能是与
conf/hbase site.xml
中的zookeeper.quorum设置不一致,最小值必须为:

<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>
基本上告诉HBase是否应该管理自己的Zookeeper实例。如果设置为
false
,则编辑为
true

现在,为了进行验证,有一个有用的命令(忘记
ps
,然后是
grep
):

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

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

$ ./bin/stop-hbase.sh
进行必要的更改并重新启动:

$ ./bin/start-hbase.sh

p.S.我可能(完全)误解了你的问题,请在评论中告诉我,我会再次与你联系,并为即将到来的SO访客提供正确的解决方案。

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

sudo ./start-hbase.sh

我使用了与Nabeel Ahmed帖子中相同的hbase-site.xml配置。

我使用的是sudo命令

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

问题似乎与
hbase
zookeeper
无关。这是一个系统设置问题

我在Mac OS X更新后也遇到了同样的问题

结果表明,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)
删除
hbase site.xml中的DNS设置后,问题出现了:

  <!--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-->

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

  • 重命名hadoop安装文件夹
  • 从.bashrc文件中删除条目
  • 重新启动计算机

要添加到上述解决方案中:hbase.rootdir的值应该存在。面对同样的问题,将hbase.rootdir设置为hdfs://localhost:9000/hbase 在HDFS中创建文件夹后,对我来说效果很好。但是,安装hbase后的默认目录对我来说不起作用,因为它还不存在。所以只需在
conf/hbase site.xml
中添加几行就可以了?我们不应该先创建一些目录吗?这很有效!请注意,在重新启动之前,您需要双重确保没有运行任何hbase进程。我要求将
hadoop
hbase
安装在此处给出的同一台机器上[.我已经先安装了
hadoop
,现在我正在尝试安装
hbase
,并出现上述错误。请帮我修复。提前感谢
hbase/bin$sudo ./start-habase.sh
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)
  <!--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-->