Running Apache HBase on Alluxio

Slack Docker Pulls

This guide describes how to run Apache HBase, so that you can easily store HBase tables into Alluxio at various storage level.


The prerequisite for this part is that you have Java and an instance of Alluxio installed.

Please follow the guides for setting up HBase on Apache HBase Configuration.


Apache HBase allows you to use Alluxio through a generic file system wrapper for the Hadoop file system. Therefore, the configuration of Alluxio is done mostly in HBase configuration files.

Set Property in hbase-site.xml

Change the hbase.rootdir property in conf/hbase-site.xml:

Tips: You do not need to create the /hbase directory in Alluxio, HBase will do this for you.


Add the following two properties to the same file hbase-site.xml (make sure these three properties are configured in all HBase cluster nodes):


Distribute the Alluxio Client Jar

We need to make the Alluxio client jar file available to HBase, because it contains the configured alluxio.hadoop.FileSystem class.

There are two ways to achieve that:

  • Put the /path/to/alluxio/client/hadoop/alluxio-enterprise-1.8.0-hadoop-client.jar file into the lib directory of HBase.
  • Specify the location of the jar file in the $HBASE_CLASSPATH environment variable (make sure it’s available on all cluster nodes). For example:
$ export HBASE_CLASSPATH=/path/to/alluxio/client/hadoop/alluxio-enterprise-1.8.0-hadoop-client.jar:${HBASE_CLASSPATH}

Add Additional Alluxio Site Properties to Hbase

If there are any Alluxio site properties you want to specify for HBase, add those to hbase-site.xml. For example, change alluxio.user.file.writetype.default from default MUST_CACHE to CACHE_THROUGH:


Using Alluxio with HBase

Start HBase:

$ ${HBASE_HOME}/bin/

Visit HBase Web UI at http://<hostname>:16010 or http://<hostname>:60010 to confirm that HBase is running on Alluxio (check the HBase Root Directory attribute):


And visit Alluxio Web UI at http://<hostname>:19999, click Browse and you can see the files HBase stores on Alluxio, including data and WALs:


HBase Shell Examples

Create a text file simple_test.txt and write these commands into it:

create 'test', 'cf'
for i in Array(0..9999)
 put 'test', 'row'+i.to_s , 'cf:a', 'value'+i.to_s
list 'test'
scan 'test', {LIMIT => 10, STARTROW => 'row1'}
get 'test', 'row1'

Run the following command from the top level HBase project directory:

$ ${HBASE_HOME}/bin/hbase shell simple_test.txt

You should see some output like this:


If you have Hadoop installed, you can run a Hadoop-utility program in HBase shell to count the rows of the newly created table:

$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter test

After this mapreduce job finishes, you can see a result like this: