I'm trying to run a specific version of HBase (2.4.6) in standalone mode in Docker. However I'm getting Zookeeper connection issues on every HBase version from 2.3.x onwards. I can successfully get a working implementation on 2.2.x
The Docker file, HBase configuration and HBase startup scripts are the same. The only thing I'm changing is the HBase version number.
hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hbase-docker</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>file:////data/hbase</value>
</property>
<property>
<name>hbase.master.info.bindAddress</name>
<value>hbase-docker</value>
</property>
<property>
<name>hbase.regionserver.info.bindAddress</name>
<value>hbase-docker</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>file:////data/zookeeper</value>
</property>
</configuration>
hbase-env.sh
#!/usr/bin/env bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HBASE_LOG_DIR=/data/logs
export HBASE_MANAGES_ZK=true
zoo.cfg
clientPort=2181
clientPortAddress=hbase-docker
dataDir=/data/zookeeper
server.1=hbase-docker:2181
Version 2.2.x log
hbase-docker | 2024-03-12 08:59:34,975 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=hbase-docker:2181 sessionTimeout=10000 watcher=org.apache.hadoop.hbase.zookeeper.PendingWatcher@619bd14c
hbase-docker | 2024-03-12 08:59:34,985 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Opening socket connection to server hbase-docker/172.18.0.2:2181. Will not attempt to authenticate using SASL (unknown error)
hbase-docker | 2024-03-12 08:59:34,985 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Socket connection established to hbase-docker/172.18.0.2:2181, initiating session
hbase-docker | 2024-03-12 08:59:34,985 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxnFactory: Accepted socket connection from /172.18.0.2:35900
hbase-docker | 2024-03-12 08:59:34,987 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.ZooKeeperServer: Client attempting to establish new session at /172.18.0.2:35900
hbase-docker | 2024-03-12 08:59:34,990 INFO [SyncThread:0] persistence.FileTxnLog: Creating new log file: log.1
hbase-docker | 2024-03-12 08:59:34,994 INFO [SyncThread:0] server.ZooKeeperServer: Established session 0x18e31e3748e0000 with negotiated timeout 10000 for client /172.18.0.2:35900
hbase-docker | 2024-03-12 08:59:34,994 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Session establishment complete on server hbase-docker/172.18.0.2:2181, sessionid = 0x18e31e3748e0000, negotiated timeout = 10000
hbase-docker | 2024-03-12 08:59:35,094 INFO [main] util.log: Logging initialized @1921ms
version 2.3.x / 2.4.x log
hbase-docker | 2024-03-12 08:56:35,152 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Opening socket connection to server hbase-docker/172.18.0.2:2181. Will not attempt to authenticate using SASL (unknown error)
hbase-docker | 2024-03-12 08:56:35,152 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Socket error occurred: hbase-docker/172.18.0.2:2181: Connection refused
hbase-docker | 2024-03-12 08:56:52,084 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts
hbase-docker | 2024-03-12 08:56:53,091 INFO [main-SendThread(hbase-docker:2181)] zookeeper.ClientCnxn: Opening socket connection to server hbase-docker/172.18.0.2:2181. Will not attempt to authenticate using SASL (unknown error)
hbase-docker | 2024-03-12 08:56:53,193 INFO [main] zookeeper.ZooKeeper: Session: 0x0 closed
hbase-docker | 2024-03-12 08:56:53,194 ERROR [main] regionserver.HRegionServer: Failed construction RegionServer
hbase-docker | org.apache.hadoop.hbase.ZooKeeperConnectionException: master:160000x0, quorum=hbase-docker:2181, baseZNode=/hbase Unexpected KeeperException creating base node
There's obviously a change between version 2.2.x and 2.3.x but can't figure this out!