Ah
Developer Tools Azure

Apache HBase on Ubuntu 24.04 on Azure User Guide

| Product: Apache HBase on Ubuntu 24.04 LTS on Azure

Overview

Apache HBase is the distributed, scalable, big-data NoSQL store that runs on top of Hadoop and HDFS, modelled on Google's Bigtable. The cloudimg image installs HBase 2.5.15 in single-node standalone mode: the HBase Master, a RegionServer and an embedded ZooKeeper quorum all run inside one JVM against the local filesystem, so a single Azure VM gives you a fully functional HBase for development, testing, single-tenant production stores, embedded time-series and proof-of-concept workloads with no Hadoop cluster to stand up. All HBase services bind to loopback; the read-only Master status UI is fronted by an nginx reverse proxy on TCP 80 with HTTP Basic auth, and a unique administrator password is generated on the first boot of every VM. Backed by 24/7 cloudimg support.

What is included:

  • Apache HBase 2.5.15 (Apache-2.0) in single-node standalone mode (Master + RegionServer + embedded ZooKeeper in one JVM)
  • OpenJDK 11
  • A dedicated 40 GiB Azure data disk at /var/lib/hbase holding hbase.rootdir, the write-ahead log and the embedded ZooKeeper data — separate from the OS disk and re-provisioned with every VM
  • All HBase services bound to 127.0.0.1 (Master 16000, Master UI 16010, RegionServer 16020/16030, embedded ZooKeeper 2181)
  • nginx reverse proxy on :80 with HTTP Basic auth in front of the Master status UI, plus an unauthenticated /health endpoint
  • Per-VM admin password generated at first boot, in a root-only file
  • hbase.service and nginx.service as systemd units, enabled and active
  • 24/7 cloudimg support

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet + subnet in the target region. Standard_B4ms (4 vCPU / 16 GiB RAM) is a good starting point — HBase and the embedded ZooKeeper JVM are memory hungry. NSG inbound: allow 22/tcp from your management network and 80/tcp from the users who reach the Master status UI (front port 80 with TLS for public exposure — see Enabling HTTPS).

Step 1 — Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Apache HBase by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) and HTTP (80). Review the dedicated 40 GiB data disk on the Disks tab, then Review + create -> Create.

Step 2 — Deploy from the Azure CLI

az vm create \
  --resource-group <your-rg> \
  --name hbase \
  --image <marketplace-image-urn> \
  --size Standard_B4ms \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard

az vm open-port --resource-group <your-rg> --name hbase --port 80 --priority 1010

Step 3 — Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 — Confirm the services are running

systemctl is-active hbase.service nginx.service

Both services report active.

HBase and nginx services on Ubuntu 24.04

Step 5 — Confirm the gateway answers

The nginx reverse proxy serves an unauthenticated /health endpoint for liveness checks and fronts the HBase Master status UI behind HTTP Basic auth:

curl -s -o /dev/null -w 'health endpoint -> HTTP %{http_code}\n' http://127.0.0.1/health
curl -s -o /dev/null -w 'Master UI (no auth) -> HTTP %{http_code}\n' http://127.0.0.1/

The /health endpoint returns HTTP 200; the Master UI returns HTTP 401 until you supply the per-VM credentials.

HBase version and standalone status

Step 6 — Retrieve your admin password

The administrator password is generated uniquely on the first boot of your VM and written to a root-only file:

sudo grep -E '^HBASE_ADMIN_' /root/hbase-credentials.txt

HBASE_ADMIN_USER is admin and HBASE_ADMIN_PASSWORD is the password that protects the Master status UI.

Per-VM admin password and Master UI auth round-trip

Step 7 — Open the Master status UI

The Master status UI sits behind nginx HTTP Basic auth. Read the per-VM password into a shell variable and confirm a wrong password is rejected while the real one returns the UI. Run the password-bearing request with your own password substituted in — for example, to fetch the UI with the credentials from Step 6:

curl -s -o /dev/null -w '%{http_code}\n' -u admin:<HBASE_ADMIN_PASSWORD> http://127.0.0.1/

A wrong password returns HTTP 401; the correct one returns HTTP 200 (the HBase Master status page). In a browser, open http://<vm-public-ip>/ and sign in as admin with the password from Step 6.

HBase Master status home

Step 8 — Use the hbase shell

HBase ships an interactive Ruby shell for table and row operations. Launch it as the hbase service user and create a table, write a row and read it back:

sudo -u hbase /opt/hbase/bin/hbase shell
hbase> create 'demo','cf'
hbase> put 'demo','r1','cf:a','v1'
hbase> scan 'demo'
hbase> disable 'demo'
hbase> drop 'demo'
hbase> exit

scan 'demo' prints the row r1 with column cf:a and value v1, confirming the data plane round-trips end to end.

HBase Table Details for the demo table

Step 9 — Inspect the RegionServers and tables

The Master status home (Step 7) lists the embedded RegionServer, its request load and region count — standalone runs exactly one RegionServer in-process. The Table Details tab lists every user table with its full attributes and the regions it spans.

HBase User Tables detail

Step 10 — Review cluster metrics

The Master UI exposes JVM, memory and the embedded ZooKeeper / region metrics so you can watch heap, requests and storefiles at a glance.

HBase cluster and ZooKeeper metrics

Confirm the HBase version

/opt/hbase/bin/hbase version 2>/dev/null | head -1

Enabling HTTPS

For production, terminate TLS at nginx with a real domain pointed at the VM's public IP. Install certbot and request a certificate (replace the domain):

sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.com

Backup and maintenance

All HBase data — tables, the write-ahead log and the embedded ZooKeeper state — lives on the dedicated data disk at /var/lib/hbase. Snapshot that disk in Azure to back up your store, and keep the OS patched with sudo apt update && sudo apt upgrade. HBase restarts cleanly with sudo systemctl restart hbase nginx. For larger datasets, resize the data disk in the Azure portal and grow the filesystem.

Support

This image is backed by 24/7 cloudimg support. Contact us by email and chat for help with table design, region tuning, the hbase shell, scaling, TLS and backups.

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.