java HBase客户端ConnectionLoss for /hbase错误

plicqrtu  于 2023-05-05  发布在  Java
关注(0)|答案(6)|浏览(306)

我完全疯了:
安装了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壳层
正在工作,并提出正确的结果运行'列表'和;

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

当通过Ruby & Thrift进行连接时,一切工作正常;我们正在添加数据,它正在进入系统,我们可以查询/扫描它。一切都很好。
在使用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 '^]'.

连接和死亡,如果你输入任何+进入(不知道如果这是想法,节俭对9090做同样的)。
谁能帮帮我?

lkaoscv7

lkaoscv71#

这是一个Zookeeper(ZK)错误。HBase客户端尝试从Zookeeper获取/hbase节点,但失败了。
您可以从HBase主Web界面获得ZK转储。你应该看到所有与ZK的联系,并弄清楚是否有什么东西在耗尽它们。
在深入研究其他任何事情之前,你可以尝试重新启动你的ZK集群,看看它是否可以解决你的问题。(奇怪的是,你只看到一个客户端)。
HBase有一个设置,可以增加到ZK的连接数。这是

hbase.zookeeper.property.maxClientCnxns

最近有一些与默认连接数有关的更新(见下文)(有一个hbase-default.xml文件,其中包含所有默认配置)。您可以在hbase-site.xml文件(在HBase conf目录下)中覆盖它,并将其提高到100或更多。但是要确保你没有用这种方式掩盖真实的的问题,你不应该在一个客户端看到这个问题。
我们也遇到过类似的情况,但它发生在升级到HBase-0.90后,从map-reduce作业开始的繁重操作期间。
以下是与您问题相关的几个问题:

如果你还是想不通,可以发邮件到hbase用户列表,或者加入freenode上的#hbase频道,并提出实时问题。

dzhpxtsq

dzhpxtsq2#

实际上,由于某种原因,……我真的不明白它的细节)防火墙是阻止所需的一个端口与Zookeeper;在命令行中可以用,在我的应用程序中不行然而,当我禁用防火墙时,突然一切都正常了。
谢谢你的帮助!

zdwk9cvp

zdwk9cvp3#

第1步:首先使用“jps”命令检查HBase Master节点是否正在运行。
步骤2:使用“stop-all.sh”命令停止Hadoop集群上所有正在运行的服务。
有关此问题的更多信息:
http://commandstech.com/hbase-error-keeperrorcode-connectionloss-for-hbase-in-cluster/
第三步:使用“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
第八步:使用“list”命令。

crcmnpdw

crcmnpdw4#

当用户在客户端的hbase-site.xml中为“zookeeper.znode.parent”定义了不正确的值时,或者在编写自定义API的情况下,“zookeeper.znode.parent”被错误地更新到错误的位置时,会发生这种情况。例如,默认的“zookeeper.znode.parent”设置为“/hbase-unsecure”,但是如果您错误地指定为“/hbase”,而不是我们在集群中设置的,那么在尝试连接到HBase集群时就会遇到这种异常

prdp8dxp

prdp8dxp5#

我在连接到HBase DB时遇到了同样的问题。
原来我在/etc/hosts中有一个错误的db机器地址。

dffbzjpn

dffbzjpn6#

我知道我迟到了,但我能够通过使用下面的链接解决它-https://community.cloudera.com/t5/Support-Questions/Ambari-with-Active-HBase-Master-and-Hbase-Master/m-p/161249
我的本地HBase运行在WSL中,结果使用的是IPv6。我不得不根据链接将其配置为不在/conf/ www.example.com文件中使用hbase-env.sh。

相关问题