0

我编写了一个简单的 HBase 客户端程序来在我的 HBase 集群(1 个 Master 和 3 个 Region Server)中执行 CRUD 操作。Zookeeper 实例仅在主服务器中运行,法定人数包括所有 4 台服务器。集群运行良好,可以使用 YCSB 客户端执行读/写(意味着服务器/zookeeper 端没有任何问题)。

现在在 Eclipse 类路径中,我添加了所有 HBase 库和 hbase-0.94.7.jar(其中包含 hbase-default.xml 文件)。我还在项目的集群中添加了原始的 hbase-site.xml 文件。

最初,我使用未修改的 hbase-default.xml 运行客户端代码,我发现客户端正在尝试与 zookeeper 实例的 localhost 通信。从而忽略了 hbase-site.xml。

然后我修改了保存 Master/Zookpeer 服务器公共 IP 地址的 3 个参数并再次尝试。这次我收到以下错误,客户端不断尝试与 Zookeeper 及其其他仲裁成员连接。

我在 Zookeeper 仲裁中拥有所有 4 台服务器,可以说它们的 IP 地址是:

  • WWWW // HBase master 和 Zookeeper Server

  • XXXX // HBase RS 和 Zookeeper 法定成员

  • YYYY // HBase RS 和 Zookeeper 法定成员

  • ZZZZ // HBase RS 和 Zookeeper 仲裁成员


13/06/19 13:06:23 INFO zookeeper.ZooKeeper:启动客户端连接,connectString=WWWW:2181,XXXX:2181,YYYY:2181,ZZZZ:2181 sessionTimeout=180000 watcher=hconnection

13/06/19 13:06:23 INFO zookeeper.RecoverableZooKeeper:这个进程的标识符是5828@Kamal-VAIO

19 年 13 月 6 日 13:06:24 信息 zookeeper.ClientCnxn:打开与服务器 WWWW:2181 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)

13/06/19 13:06:25 WARN zookeeper.ClientCnxn:服务器空会话 0x0,意外错误,关闭套接字连接并尝试重新连接

java.net.ConnectException:连接被拒绝:没有更多信息

19 年 13 月 6 日 13:06:25 WARN zookeeper.RecoverableZooKeeper:可能是暂时的 ZooKeeper 异常:org.apache.zookeeper.KeeperException$ConnectionLossException:KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

19 年 13 月 6 日 13:06:25 信息 util.RetryCounter:在重试 #1 之前休眠 2000 毫秒...

19 年 13 月 6 日 13:06:25 信息 zookeeper.ClientCnxn:打开与服务器 XXXX:2181 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)

19 年 13 月 6 日 13:06:26 WARN zookeeper.ClientCnxn:服务器空会话 0x0,意外错误,关闭套接字连接并尝试重新连接

java.net.ConnectException:连接被拒绝:没有更多信息

... 等等

4

2 回答 2

2

问题已解决。

解决方案:

  1. 右键单击Eclipse中的项目
  2. 转到属性
  3. 选择 Java 构建路径
  4. 去图书馆
  5. 单击添加类文件夹
  6. 添加一个名为 conf 的新文件夹
  7. 按全部确定
  8. 将我的 hbase-site.xml 复制到 conf 文件夹中
  9. 还将我的 HBase 集群的 ip-host 列表添加到 Win 7 主机文件中并保存。
  10. 运行 hbase 代码,客户端可以成功连接 Zookeeper 和 HBase master。

注意:步骤 10 是必须的,否则客户端将从 Zookeeper 实例获取主机名并且无法解析它们。

非常感谢大家。

于 2013-06-19T07:58:38.203 回答
0

实际上问题出在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>
于 2019-01-31T09:07:18.327 回答