如何解决Hbase中的“ zookeeper.ClientCnxn连接被拒绝”问题?

时间:2019-06-21 16:54:21

标签: hbase

Hbase版本是2.2.0,可在Ubuntu 16.04 LTS中运行。

当我以独立模式使用Hbase时,实际上还有其他任何模式,都会出现如下“连接被拒绝”错误

2019-06-22 00:28:12,804 INFO  [main-SendThread(127.0.0.1:2181)] zookeeper.ClientCnxn: Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2019-06-22 00:28:12,804 WARN  [main-SendThread(127.0.0.1:2181)] zookeeper.ClientCnxn: Session 0x16b7adc2ad80001 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

它总是一次又一次地重复。

我的hbase-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

     <property>
       <name>hbase.rootdir</name>
       <value>file:///usr/local/hbase/tmp/data</value>
     </property>

     <property>
       <name>hbase.cluster.distributed</name>
       <value>false</value>
     </property>

</configuration>

还有我刚刚配置JAVA_HOMEHBASE_MANAGES_ZK的'hbase-env.sh'文件:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_MANAGES_ZK=true

我找不到我的配置错误。当我键入start-hbase.sh命令时,当我键入'jps'命令时,我可以看到“ Hbase home中的Hbase DATA”和HMaster已经在运行。

但是,当我输入hbase shell时,我无法连接。

我在主日志中找不到任何解决方法,因为它总是重复“连接被拒绝”。

我不知道问题出在哪里。

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。特定的原因是我的“ hbase”库依赖于2.8.5版的“ hadoop”,但是我部署的“ hadoop”版本是3.1.0。因此导致不支持“ hbase”的“ hflush / hsync”。

解决方案是here