Could not start ZK at requested port of 2181, while export HBASE_MANAGES_ZK=false

Problem

The first aim was to run HBase standalone. Navigating to ip:60010/master-status is succesfull once HBase has been started.

The second aim is to run a distinct ZooKeeper quorum. ZooKeeper has been downloaded and has been started:

netstat -nato | grep 2181
tcp        0      0 :::2181                     :::*                        LISTEN      off (0.00/0/0)

The conf/hbase-env.sh was changed as follows:

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

in order to avoid HBase starts ZooKeeper once HBase has been started.

However, the following error occurs once HBase has been started.

Could not start ZK at requested port of 2181.  ZK was started at port: 2182.  
Aborting as clients (e.g. shell) will not be able to find this ZK quorum.

Question

How to disable the startup of ZooKeeper by HBase and run ZooKeeper separately?


Solution 1:

According to this documentation the /usr/lib/hbase/conf/hbase-site.xml file needs to be configured as follows:

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
</configuration>

to avoid HBase manages its own ZooKeeper.

After configuring this, the zookeeper-server and hbase-master were started independently.