Search code examples
hbase

How to solve "zookeeper.ClientCnxn Connection refused" problem in Hbase?


Hbase version is 2.2.0, it run in Ubuntu 16.04 LTS.

When I take Hbase in standalone mode, in fact what else any mode, I got some "Connection refused" error like below

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)

It always repeat again and again.

My 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>

And 'hbase-env.sh' file which i just config JAVA_HOME and HBASE_MANAGES_ZK:

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

I can not find my configuration error. When I type start-hbase.sh command, then I can see the "Hbase DATA in Hbase home" and the HMaster already running when I type 'jps' command.

But, when I type hbase shell, I fail to connect.

I can not find any solution ways in master-log, because it always repeat "Connection refused".

I can not figure out where the problem is.


Solution

  • I have solved this problem. The specific reason is that my 'hbase' library depend 'hadoop', version 2.8.5, but my deployed 'hadoop' version is 3.1.0. So it lead to that 'hflush/hsync' of 'hbase' is unsupported.

    The solutions are here