如何解决/ hbase错误的Hbase客户端ConnectionLoss
| 我要疯了: 安装了Hadoop / Hbase,一切都在运行;/opt/jdk1.6.0_24/bin/jps
23261 ThriftServer
22582 QuorumPeerMain
21969 NameNode
23500 Jps
23021 HRegionServer
22211 TaskTracker
22891 HMaster
22117 SecondaryNameNode
21779 DataNode
22370 Main
22704 JobTracker
伪分布式环境。
HBase的壳
正在运行并得出正确的结果,运行\'list \'并且;
hbase shell
HBase Shell; enter \'help<RETURN>\' for list of supported commands.
Type \"exit<RETURN>\" to leave the HBase Shell
Version 0.90.1-cdh3u0,r,Fri Mar 25 16:10:51 PDT 2011
hbase(main):001:0> status
1 servers,0 dead,8.0000 average load
通过红宝石和节俭连接时,一切正常。我们正在添加数据,它正在进入系统,我们可以查询/扫描它。一切似乎都很好。
但是,使用Java连接时:
groovy> import org.apache.hadoop.hbase.HBaseConfiguration
groovy> import org.apache.hadoop.hbase.client.HBaseAdmin
groovy> conf = HBaseConfiguration.create()
groovy> conf.set(\"hbase.master\",\"127.0.0.1:60000\");
groovy> hbase = new HBaseAdmin(conf);
Exception thrown
org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1000)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:84)
我一直在寻找原因,但是我真的一点头绪也没有。一切似乎都已正确安装。
netstat -lnp|grep 60000
tcp6 0 0 :::60000 :::* LISTEN 22891/java
看起来也不错。
# telnet localhost 60000
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
如果您键入任何内容,然后连接并死掉,然后按Enter键(不确定是否是这个主意,在9090上节俭也是如此)。
谁能帮我?
解决方法
这是Zookeeper(ZK)错误。 HBase客户端尝试从Zookeeper获取/ hbase节点,但失败。
您可以从HBase主Web界面获取ZK转储。您应该查看与ZK的所有连接,并确定是否有什么用尽它们。
在深入探讨其他问题之前,您可以尝试重新启动ZK群集,看看它是否可以解决您的问题。 (很奇怪您看到一个客户端)。
HBase具有增加与ZK的连接数的设置。它的
hbase.zookeeper.property.maxClientCnxns
最近有一些更新(请参见下文)与默认连接数(其中有一个具有所有默认配置的hbase-default.xml文件)有关。
您可以在hbase-site.xml文件(在HBase conf dir下)中覆盖此值,并将其提高到100或更多。但是请确保您不会以这种方式掩盖真正的问题,并且单个客户端也不应看到此问题。
我们也有类似的情况,但是这是在升级到HBase-0.90之后,在减少地图工作的繁重操作中发生的。
这是与您的问题有关的几个问题:
https://issues.apache.org/jira/browse/HBASE-3773
https://issues.apache.org/jira/browse/HBASE-3777
如果仍然无法解决问题,请向hbase-users列表发送电子邮件,或在freenode上加入#hbase频道并提出实时问题。
, 问题实际上是(由于某种原因……我并没有详细说明)防火墙阻止了与Zookeeper进行通信所需的端口之一。从命令行运行,从我的应用程序运行,没有。但是,当我禁用防火墙时,所有设备突然都能正常工作。
谢谢您的帮助!
, 当用户在源自客户端的hbase-site.xml中为\“ zookeeper.znode.parent \”定义了不正确的值时,或者在编写了自定义API的情况下,就会出现这种情况,即\“ zookeeper.znode.parent \”被错误地更新到错误的位置。例如,默认的\“ zookeeper.znode.parent \”设置为\“ / hbase-unsecure \”,但是如果您错误地将其指定为\“ / hbase \”,而不是我们在群集,尝试连接到HBase群集时会遇到此异常
, 连接到我的hbase数据库时,我遇到了同样的问题。
原来我的/etc/hosts
中的db计算机地址错误。
, 步骤1:首先将使用\“ jps \”命令检查HBase Master节点是否正在运行。
步骤2:使用\“ stop-all.sh \”命令停止Hadoop集群上所有正在运行的服务。
有关此问题的更多信息:
http://commandstech.com/hbase-error-keeperrorcode-connectionloss-for-hbase-in-cluster/
步骤3:使用\“ start-all.sh \”命令启动所有正在运行的服务。
步骤4:使用\“ jps \”命令检查服务是否显示HBase主站正常工作,否则可以执行以下步骤:
步骤5:使用\“ sudo su \”转到root用户
步骤6:转到hbase shell文件路径:\“ cd /usr/lib/habse-1.2.6-hadoop/bin/start-hbase.sh \”
步骤7:使用\“ hbase shell \”命令打开hbase shell
步骤8:使用\“ list \”命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。