apache hbase #19

Supports: trusty
Add to new model


HBase is an open source, non-relational, distributed database modeled after
Google's BigTable

Learn more at http://hbase.apache.org.


HBase is an open source, non-relational, distributed database modeled after
Google's BigTable and written in Java. It is developed as part of Apache
Software Foundation's Apache Hadoop project and runs on top of HDFS (Hadoop
Distributed Filesystem), providing BigTable-like capabilities for Hadoop.


  • Linear and modular scalability.
  • Strictly consistent reads and writes.
  • Automatic and configurable sharding of tables
  • Automatic failover support between RegionServers.
  • Convenient base classes for backing Hadoop MapReduce jobs with Apache HBase
  • Easy to use Java API for client access.
  • Block cache and Bloom Filters for real-time queries.
  • Query predicate push down via server side Filters
  • Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and
    binary data encoding options
  • Extensible jruby-based (JIRB) shell
  • Support for exporting metrics via the Hadoop metrics subsystem to files or
    Ganglia; or via JMX

When Would I Use Apache HBase?

Use Apache HBaseâ„¢ when you need random, realtime read/write access to your
Big Data. This project's goal is the hosting of very large tables -- billions
of rows X millions of columns -- atop clusters of commodity hardware.
Apache HBase is an open-source, distributed, versioned, non-relational
database modeled after Google's Bigtable: A Distributed Storage System
for Structured Data by Chang et al. Just as Bigtable leverages the distributed
data storage provided by the Google File System, Apache HBase provides
Bigtable-like capabilities on top of Hadoop and HDFS.

How Our Apache HBase Solution Works?

Apache HBase scales linearly by requiring all tables to have a primary key.
The key space is divided into sequential blocks that are then allotted to a
region. RegionServers own one or more regions, so the load is spread uniformly
across the cluster. If the keys within a region are frequently accessed, Apache
HBase can further subdivide the region by splitting it automatically, so that
manual data sharding is not necessary.

Apache ZooKeeper and HMaster servers make information about the cluster
topology available to clients. Clients connect to these nodes using Juju
relations and download a list of RegionServers, the regions contained within
those RegionServers and the key ranges hosted by the regions. Clients know
exactly where any piece of data is in HDFS and can contact the RegionServer
directly without any need for a central coordinator.


This charm leverages our pluggable Hadoop model with the hadoop-plugin
interface and Apache Zookeeper charm. This means that you will need to
deploy a base Apache Hadoop cluster and Apache Zookeeper quorum to run HBase.
The suggested deployment method is to use the
bundle. This will deploy the Apache Hadoop/Zookeeper platform with a single
Apache HBase HMaster and two scalable Apache HBase RegionServer units that
communicates with the cluster by relating to the
apache-hadoop-plugin subordinate charm:

juju-quickstart u/bigdata-dev/apache-hadoop-hbase

Alternatively, you may manually deploy the recommended environment as follows:

juju deploy apache-hadoop-hdfs-master hdfs-master
juju deploy apache-hadoop-yarn-master yarn-master
juju deploy apache-hadoop-compute-slave compute-slave
juju deploy apache-hadoop-plugin plugin
juju deploy -n 3 apache-zookeeper zookeeper
juju deploy apache-hbase hbase-master
juju deploy apache-hbase hbase-regionserver

juju add-relation yarn-master hdfs-master
juju add-relation compute-slave yarn-master
juju add-relation compute-slave hdfs-master
juju add-relation plugin yarn-master
juju add-relation plugin hdfs-master
juju add-relation hbase-master plugin
juju add-relation hbase-regionserver plugin
juju add-relation hbase-master:master hbase-regionserver:regionserver
juju add-relation zookeeper hbase-master
juju add-relation zookeeper hbase-regionserver

Once deployment is complete, you can manually load and run HBase shell or
access the web interface at http://{hbase_master_ip}:60010

  • Apache HBase shell

The Apache HBase Shell is (J)Ruby's IRB with some HBase particular commands
added. Anything you can do in IRB, you should be able to do in the HBase Shell.
Type help and then to see a listing of shell commands and options. To
run the HBase shell, do as follows:

   juju ssh hbase-master/0
   ./bin/hbase shell


Testing the deployment

Smoke test HBase

SSH to the HBase unit and run the smoke test as follows:

juju ssh hbase-master/0
~/hbase_test.sh test_table

Verify Job History

Verify the Job History server shows the previous test results by visiting

Contact Information



(string) URL from which to fetch resources (e.g., Hadoop binaries) instead of Launchpad.