首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZooKeeper exists在重试3次后失败

ZooKeeper exists在重试3次后失败
EN

Stack Overflow用户
提问于 2013-11-27 17:54:39
回答 2查看 9.9K关注 0票数 5

我在伪分布式模式下运行Hadoop-1.2.1和HBase-0.94.11。

由于电源故障,Hadoop和HBase设置在我重启计算机和设置伪分发版时进入了down.Next时间,HBase在HBase外壳上停止工作,并显示以下错误:

代码语言:javascript
复制
13/11/27 13:53:27 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/11/27 13:53:27 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode (/hbase/hbaseid)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
    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.ClusterId.readClusterIdZNode(ClusterId.java:61)
    at org.apache.hadoop.hbase.zookeeper.ClusterId.getId(ClusterId.java:50)
    at org.apache.hadoop.hbase.zookeeper.ClusterId.hasId(ClusterId.java:44)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.ensureZookeeperTrackers(HConnectionManager.java:720)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:789)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:129)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

以下是流程:

代码语言:javascript
复制
hduser@user-ubuntu:~$ jps
16914 NameNode
19955 Jps
29460 Main
17728 TaskTracker
19776 HMaster
17490 JobTracker
17392 SecondaryNameNode
EN

回答 2

Stack Overflow用户

发布于 2013-11-27 19:58:22

您确定您的Zookeeper进程正在运行吗(您的jps列表中没有显示QuorumPeerMain的条目)?jps堆栈可能不会显示所有正在运行的java进程-请尝试使用ps axww | grep QuorumPeerMain

如果您的zookeeper拒绝启动,请检查其日志以查看是否有一些堆栈跟踪线索

票数 1
EN

Stack Overflow用户

发布于 2016-04-13 17:34:56

很简单,zookeeper quorum进程没有运行-如果它运行了,就会有另一个java进程:

代码语言:javascript
复制
hduser@user-ubuntu:~$ jps
16914 NameNode
19955 Jps
29460 Main
17728 TaskTracker
19776 HMaster
17490 JobTracker
17392 SecondaryNameNode

xxxxx HQuorumPeer

HBase群集需要Zookeeper -因为它管理它。

可能的解决方案:默认情况下,HBase管理zookeeper本身,即启动和停止zookeeper quorum ( zookeeper节点的集群)-要验证设置,请查看文件conf/ hbase -evn.sh (在您的hbase目录中),必须有一行:

代码语言:javascript
复制
export HBASE_MANAGES_ZK=true

基本上是告诉HBase是否应该管理自己的Zookeeper实例。如果设置为false,则编辑为true

还要验证conf/hbase-site.xml上的HBase配置,

适用于伪分布式模式的最低配置为:

代码语言:javascript
复制
<configuration>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
    <name>hbase.rootdir</name>
   <value>hdfs://localhost:9000/hbase</value>   
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/<yourusername>/zookeeper</value>
  </property>
</configuration>

现在停止HBase,如果它一直在运行:

代码语言:javascript
复制
$ ./bin/stop-hbase.sh

进行必要的更改,然后重新启动:

代码语言:javascript
复制
$ ./bin/start-hbase.sh

你可能会发现有帮助的答案:1 2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20239072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档