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
.
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.