Install HBase in WSL - Standalone Mode

visibility 1,640 comment 12 event 2021-02-02 access_time 2 years ago language English

HBase is the short name for Hadoop database. HBase is a distributed non-SQL database like Google Bigtable, which can utilizes distributed file system like HDFS. HBase can run in two modes - standalone and distributed. In this tutorial, I will show you how to install a standalone HBase on WSL (Windows Subsystem for Linux) without using HDFS. 



Please ensure you have WSL enabled on your Windows 10 system.  Follow Install Windows Subsystem for Linux on a Non-System Drive to install WSL on a non-C drive.  This tutorial utilizes Debian distro. You could also replicate these steps on Debian Linux system directly.


Follow article Install Open JDK on WSL to install JDK if it is not available.

Ensure JAVA_HOME environment variable is setup properly.

Step by step guide

1) Download HBase from a mirror site: Apache Download Mirrors.

For example, I am using the following command to download the released binary into my WSL user home folder:


The version downloaded is 2.4.1.

2) Extract the downloaded file using the following command:

tar xzvf hbase-2.4.1-bin.tar.gz

3) Change directory to the extracted folder:

cd hbase-2.4.1

The folder includes these files/subfolders:

~/hbase-2.4.1$ ls
bin  conf  docs  hbase-webapps  LEGAL  lib  LICENSE.txt  NOTICE.txt  README.txt

4) Start HBase daemon service:

~/hbase-2.4.1$ bin/

The service may not start successfully due to the following error:

2021-02-02 23:13:40,683 INFO  [main] server.NIOServerCnxnFactory: binding to port localhost/
2021-02-02 23:13:40,684 ERROR [main] master.HMasterCommandLine: Master exiting Permission denied
        at Method)
        at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(
        at org.apache.zookeeper.server.ServerCnxnFactory.configure(
        at org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster.startup(
        at org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster.startup(
        at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(
        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(
        at org.apache.hadoop.hbase.master.HMaster.main(

I resolved this issue via the following two steps:

  • Update conf/hbase-site.xml file to use a different client port:
    As shown in line 56 of the following screenshot, the client port is changed to 10231.
  • And then rerun the command to start the daemons.  Make sure to allow java communications:20210202122651-image.png

5) Run jps command to ensure HMaster Java process exists.

~/hbase-2.4.1$ jps
1608 HMaster
2508 Jps

6) Check the Web UI: http://localhost:16010.

The UI looks like the following:


7) Connect to HBase using Shell:

~/hbase-2.4.1$ bin/hbase shell
2021-02-02 23:34:14,903 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit:
Version 2.4.1, rb4d9639f66fccdb45fea0244202ffbd755341260, Fri Jan 15 10:58:57 PST 2021
Took 0.0017 seconds

8) Practice the following commands in the HBase shell:

  • create 'test_table', 'cf'
  • list 'test_table'
  • describe 'test_table'
  • put 'test_table', 'row1', 'cf:a', 'value1'
  • put 'test_table', 'row2', 'cf:b', 'value B'
  • put 'test_table', 'row3', 'cf:c', 'value 3'
  • scan 'test_table'
  • get 'test_table', 'row1'
  • drop 'test_table'
  • disable 'test_table'
  • drop 'test_table'

The output looks like the following screenshot:


9) Quit the shell by running this command:

# or

10) Stop HBase daemon services if you don't want to use HBase in WSL:

~/hbase-2.4.1$ bin/
stopping hbase............

info Last modified by Raymond 2 years ago copyright This page is subject to Site terms.
Like this article?
Share on

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts