gpt4 book ai didi

java - Hbase 客户端 ConnectionLoss for/hbase 报错

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:26 24 4
gpt4 key购买 nike

我要疯了:

安装好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 上的 thrift 也是如此)。

谁能帮帮我?

最佳答案

这是 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-users 列表或加入 freenode 上的#hbase channel 并提出实时问题。

关于java - Hbase 客户端 ConnectionLoss for/hbase 报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6153560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com