[英]Java client fails to connect to Zookeeper and HBase
我写了一个简单的HBase客户端程序来在我的HBase集群中执行CRUD操作(1个Master和3 Region Server)。 Zookeeper实例仅在主服务器中运行,仲裁包括所有4个服务器。 集群运行正常,可以使用YCSB客户端执行读/写(意味着服务器/ zookeeper端没有任何错误)。
现在在eclipse类路径中,我添加了所有HBase库和hbase-0.94.7.jar(包含hbase-default.xml文件)。 我还在项目的集群中添加了原始的hbase-site.xml文件。
最初,我使用未修改的hbase-default.xml运行客户端代码,并且我发现客户端正在尝试与zoohost实例进行通信。 从而忽略了hbase-site.xml。
然后我修改了3个参数,这些参数保存了Master / Zookpeer服务器的公共IP地址并再次尝试。 这次我得到以下错误,客户端不断尝试与Zookeeper及其他仲裁成员连接。
我拥有Zookeeper仲裁中的所有4台服务器,并说它们的IP地址是:
WWWW // HBase master和Zookeeper Server
XXXX // HBase RS和Zookeeper Quorum会员
YYYY // HBase RS和Zookeeper Quorum会员
ZZZZ // HBase RS和Zookeeper Quorum会员
13/06/19 13:06:23 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=W.W.W.W:2181,X.X.X.X:2181,Y.Y.Y.Y:2181,Z.Z.Z.Z:2181 sessionTimeout=180000 watcher=hconnection 13/06/19 13:06:23 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 5828@Kamal-VAIO 13/06/19 13:06:24 INFO zookeeper.ClientCnxn: Opening socket connection to server W.W.W.W:2181. Will not attempt to authenticate using SASL (unknown error) 13/06/19 13:06:25 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect java.net.ConnectException: Connection refused: no further information
13/06/19 13:06:25 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid 13/06/19 13:06:25 INFO util.RetryCounter: Sleeping 2000ms before retry #1... 13/06/19 13:06:25 INFO zookeeper.ClientCnxn: Opening socket connection to server X.X.X.X:2181. Will not attempt to authenticate using SASL (unknown error) 13/06/19 13:06:26 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect java.net.ConnectException: Connection refused: no further information
... 等等
问题已经解决了。
注意:必须执行步骤10,否则客户端将从Zookeeper实例获取主机名,并且无法解析它们。
非常感谢大家。
实际上问题出在kafka-client上。 因此,在这种情况下,您必须明确使用kafka-client依赖版本1.0.2 。 有时其他kafka-client版本会出现问题。 在我设置kafka-client版本和范围“提供”后,错误消失了。
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.