HBase è un sistema di gestione database colonnare eseguito su Hadoop Distributed File System (HDFS). HBase fornisce uno strumento con tolleranza ai guasti per memorizzare set di dati sparsi, comuni in molti casi d'uso di big data. È adatto all'elaborazione dati in tempo reale o all'accesso random in lettura/scrittura a grandi volumi di dati.
A differenza dei sistemi di database relazionale, HBase non supporta uno structured query language come SQL; infatti HBase non è affatto un data store relazionale. Le applicazioni HBase sono scritte in Java™, proprio come un'applicazione Apache MapReduce tipo. HBase supporta le applicazioni di scrittura in Apache Avro, Representational State Transfer (REST) e Thrift.
Un sistema HBase è progettato per scalare linearmente. Comprende un insieme di tabelle standard con righe e colonne, proprio come un database tradizionale. Ogni tabella deve avere un elemento definito come chiave primaria e tutti i tentativi d'accesso alle tabelle di HBase devono servirsi di questa chiave primaria.
Avro, come componente, supporta un ricco insieme di tipi di dati primitivi, tra cui dati numerici, dati binari e stringhe; e vari tipi complessi tra cui array, mappe, enumerazioni e record. Per i dati può anche essere definito un criterio di ordinamento.
HBase si affida a ZooKeeper per un coordinamento ad alte prestazioni. ZooKeeper è integrato in HBase, ma se stai eseguendo un cluster di produzione suggeriamo di avere un cluster dedicato ZooKeeper che sia integrato con il tuo cluster HBase.
HBase lavora bene con Hive, un motore di query per l'elaborazione in modalità batch di big data, in modo da abilitare applicazioni tolleranti ai guasti su big data.