HBase proporciona una forma tolerante a fallos de almacenamiento de conjuntos de datos dispersos, que son comunes en muchos casos de uso de big data. Es ideal para el procesamiento de datos en tiempo real o para el acceso aleatorio de lectura/escritura a grandes volúmenes de datos.
A diferencia de los sistemas de bases de datos relacionales, HBase no admite un lenguaje de consulta estructurado como SQL; de hecho, HBase no es un almacén de datos relacional. Las aplicaciones HBase están escritas en Java de forma muy parecida a una aplicación típica de Apache MapReduce. HBase admite la escritura de aplicaciones en Apache Avro, REST y Thrift.
Un sistema HBase está diseñado para escalar linealmente. Se compone de un conjunto de tablas estándar con filas y columnas, muy parecido a una base de datos tradicional. Cada tabla debe tener un elemento definido como clave principal, y todos los intentos de acceso a las tablas HBase deben utilizar esta clave principal.
Avro, como componente, admite un amplio conjunto de tipos de datos primitivos que incluyen: datos numéricos, binarios y cadenas; y una serie de tipos complejos que incluyen matrices, mapas, enumeraciones y registros. También se puede definir un orden de clasificación para los datos.
HBase confía en ZooKeeper para una coordinación de alto rendimiento. ZooKeeper está integrado en HBase, pero si está ejecutando un clúster de producción, se sugiere que tenga un clúster ZooKeeper dedicado que esté integrado con su clúster HBase.
HBase funciona bien con Hive, un motor de consulta para el procesamiento por lotes de big data, para permitir aplicaciones de big data tolerantes a fallos.