tree: 0694914dc8531ef49f1d82e975ec2632c9486ec6 [path history] [tgz]
  1. actions/
  2. lib/
  3. reactive/
  4. tests/
  5. actions.yaml
  6. copyright
  7. icon.svg
  8. layer.yaml
  9. metadata.yaml
  10. README.md
  11. wheelhouse.txt
bigtop-packages/src/charm/hbase/layer-hbase/README.md

Overview

HBase is the Hadoop database. Think of it as a distributed scalable Big Data store.

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

HBase is an open-source, distributed, versioned, column-oriented store 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, HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.

HBase provides:

  • 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 HBase tables.
  • 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.

See the homepage for more information.

This charm deploys the hbase master and regionserver components of the Apache Bigtop platform.

Deploying

A working Juju installation is assumed to be present. If Juju is not yet set up, please follow the getting-started instructions prior to deploying this charm.

An HBase deployment consists of HBase masters and HBase RegionServers. In a distributed HBase environment, one master and one regionserver are deployed on each unit. HBase makes sure that only one master is active and the rest are in standby mode in case the active one fails.

HBase operates over HDFS, so we first need to deploy an HDFS cluster:

juju deploy hadoop-namenode namenode
juju deploy hadoop-slave slave
juju deploy hadoop-plugin plugin

juju add-relation namenode slave
juju add-relation plugin namenode

In order to function correctly, the HBase master and regionserver applications have a mandatory relationship with Zookeeper. Use the zookeeper charm to create a functional zookeeper quorum. Remember that quorums come in odd numbers starting with 3 (one will work, but will offer no resilience):

juju deploy zookeeper -n 3

Now add HBase scaled to 3 units and add the required relations:

juju deploy hbase -n 3

juju add-relation plugin hbase
juju add-relation zookeeper hbase

The charm also supports use of the thrift gateway.

Network-Restricted Environments

Charms can be deployed in environments with limited network access. To deploy in this environment, configure a Juju model with appropriate proxy and/or mirror options. See Configuring Models for more information.

Verifying

Status

Apache Bigtop charms provide extended status reporting to indicate when they are ready:

juju status

This is particularly useful when combined with watch to track the on-going progress of the deployment:

watch -n 2 juju status

The message column will provide information about a given unit's state. This charm is ready for use once the status message indicates that it is ready.

Smoke Test

This charm provides a smoke-test action that can be used to verify the application is functioning as expected. Run the action as follows:

juju run-action hbase/0 smoke-test

Note: The above assumes Juju 2.0 or greater. If using an earlier version of Juju, the syntax is juju action do hbase/0 smoke-test.

Watch the progress of the smoke test actions with:

watch -n 2 juju show-action-status

Note: The above assumes Juju 2.0 or greater. If using an earlier version of Juju, the syntax is juju action status.

Eventually, the action should settle to status: completed. If it reports status: failed, the application is not working as expected. Get more information about a specific smoke test with:

juju show-action-output <action-id>

Note: The above assumes Juju 2.0 or greater. If using an earlier version of Juju, the syntax is juju action fetch <action-id>.

Limitations

Restarting an HBase deployment is potentially disruptive. Be aware that the following events will cause a restart:

  • Zookeeper service units joining or departing relations.
  • Upgrading the charm or changing the configuration.

Contact Information

Resources