HBase bietet eine fehlertolerante Möglichkeit zur Speicherung kleiner Datensätze, die in vielen Big-Data-Anwendungsfällen üblich ist. Es eignet sich gut für die Datenverarbeitung in Echtzeit oder den wahlfreien Lese-/Schreibzugriff auf große Datenmengen.
Im Gegensatz zu relationalen Datenbanksystemen unterstützt HBase keine strukturierte Abfragesprache wie SQL; tatsächlich ist HBase überhaupt kein relationaler Datenspeicher. HBase-Anwendungen werden in Java™ geschrieben, ähnlich wie eine typische Apache-MapReduce-Anwendung. HBase unterstützt das Schreiben von Anwendungen in Apache Avro, REST und Thrift.
Ein HBase-System ist für eine lineare Skalierung ausgelegt. Es besteht aus einer Reihe von Standardtabellen mit Zeilen und Spalten, ähnlich wie eine herkömmliche Datenbank. Für jede Tabelle muss ein Element als Primärschlüssel definiert sein, und alle Zugriffsversuche auf HBase-Tabellen müssen diesen Primärschlüssel verwenden.
Avro unterstützt als Komponente eine Vielzahl von primitiven Datentypen, darunter numerische, binäre Daten und Strings sowie eine Reihe komplexer Typen wie Arrays, Maps, Aufzählungen und Datensätze. Außerdem kann eine Sortierreihenfolge für die Daten festgelegt werden.
HBase nutzt ZooKeeper für eine leistungsstarke Koordination. ZooKeeper ist in HBase integriert, aber wenn Sie einen Produktionscluster ausführen, wird empfohlen, dass Sie einen dedizierten ZooKeeper-Cluster haben, der in Ihren HBase-Cluster integriert ist.
HBase funktioniert gut mit Hive, einer Abfrage-Engine für die Stapelverarbeitung von Big Data, um fehlertolerante Big-Data-Anwendungen zu ermöglichen.