Stackable Operator for Apache HBase

This is an Operator for Kubernetes that manages Apache HBase clusters. Apache HBase is an open-source, distributed, non-relational database that runs on top of the Hadoop Distributed File System (HDFS).

Getting started

Follow the Getting started guide to learn how to install the Stackable Operator for Apache HBase as well as the dependencies. The Guide will also show you how to interact with HBase running on Kubernetes by creating tables and some data using the REST API or Apache Phoenix.

The Usage guide contains more information on Using Apache Phoenix as well as other topics such as CPU and memory configuration, Monitoring and Log aggregation.

Operator model

The Operator manages the HbaseCluster custom resource. You configure your HBase instance using this resource, and the Operator creates Kubernetes resources such as StatefulSets, ConfigMaps and Services accordingly.

HBase uses three roles: masters, regionServers and restServers.

A diagram depicting the Kubernetes resources created by the operator

For every RoleGroup a StatefulSet is created. Each StatefulSet can contain multiple replicas (Pods). For every RoleGroup a Service is created, as well as one for the whole cluster that references the regionServers. For every Role and RoleGroup the Operator creates a Service.

A ConfigMap is created for each RoleGroup containing 3 files: hbase-env.sh and hbase-site.xml files generated from the HbaseCluster configuration (See Usage guide for more information), plus a log4j.properties file used for Log aggregation. The Operator creates a discovery ConfigMap for the whole HbaseCluster a which contains information on how to connect to the HBase cluster.

Dependencies

A distributed Apache HBase installation depends on a running Apache ZooKeeper and HDFS cluster. See the documentation for the Stackable Operator for Apache HDFS how to set up these clusters.

Demo

The hbase-hdfs-cycling-data demo shows how you can use HBase together with HDFS.

Supported versions

The Stackable Operator for Apache HBase currently supports the HBase versions listed below. To use a specific HBase version in your HBaseCluster, you have to specify an image - this is explained in the Product image selection documentation. The operator also supports running images from a custom registry or running entirely customized images; both of these cases are explained under Product image selection as well.

  • 2.4.17 (LTS)