Hbase 连接到远程服务器上的 localhost。 Zookeper 拒绝连接

时间:2021-03-02 21:24:00

标签: google-cloud-platform hbase apache-zookeeper remote-server centos8

我们在谷歌云平台上遇到了一个相当奇怪的问题。我们正在尝试使用静态 IP 地址在谷歌云上设置一个 Hbase 独立实例,并通过 Java API 远程连接到该实例。

如果编译成 Jar 并部署在 HBase 服务器上,代码运行良好,但是来自本地机器虽然它打开了所有端口并完全访问,但拒绝通过 Zookeeper 连接。

我搜索了无数论坛,都没有成功。

已更改 etc/hosts 文件,在 hbase-site.xml 中添加了 zookeeper quorum,但没有任何效果。

我有一个单独的问题,即 HBase 仅通过本地主机而不是外部 IP 连接到 Zookeeper。

我们正在 CentOS 8 上部署它。

另外为了确认它与连接无关,我们在 LAN、AWS 服务器上的另一台机器上的虚拟机上尝试了这个,但似乎在某处缺少了一些它不想工作的东西。

Hbase-site.xml 如下:

<property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
     <name>hbase.zookeeper.quorum</name>
    <value>ip of server</value></property>
  </property>

连接时遇到的错误是:

2021-03-02 17:57:00,327 INFO  [main] zookeeper.ZooKeeper: Initiating client connection, connectString=10.0.0.22:2181 sessionTimeout=10000 watcher=org.apache.hadoop.hbase.zookeeper.PendingWatcher@3dfa819
2021-03-02 17:57:00,332 INFO  [main] common.X509Util: Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-03-02 17:57:00,336 INFO  [main] zookeeper.ClientCnxnSocket: jute.maxbuffer value is 4194304 Bytes
2021-03-02 17:57:00,343 INFO  [main] zookeeper.ClientCnxn: zookeeper.request.timeout value is 0. feature enabled=
2021-03-02 17:57:00,356 INFO  [main-SendThread(10.0.0.22:2181)] zookeeper.ClientCnxn: Opening socket connection to server rd-hp-pav-2/10.0.0.22:2181. Will not attempt to authenticate using SASL (unknown error)
2021-03-02 17:57:00,358 INFO  [main-SendThread(10.0.0.22:2181)] zookeeper.ClientCnxn: Socket error occurred: rd-hp-pav-2/10.0.0.22:2181: Connection refused
2021-03-02 17:57:01,460 INFO  [main-SendThread(10.0.0.22:2181)] zookeeper.ClientCnxn: Opening socket connection to server rd-hp-pav-2/10.0.0.22:2181. Will not attempt to authenticate using SASL (unknown error)

服务器上的 etc/hosts 文件包含以下格式:

127.0.0.1 localhost
123.23.34.56 cloud.google.com.c1.hbase hbase

在 HBase 的 Web gui 上存在以下信息,当 hbase-site.xml 中的所有值都已更改时,我可以看到它指的是 localhost

enter image description here

任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试在您的本地 /etc/hosts 文件条目中添加

public_ip_zookeeper/master private_DNS_name_zookeeper/master

我在 aws 中遇到了类似的问题。这为我解决了。