HBase ofrece una forma tolerante a fallos de almacenar conjuntos de datos dispersos, habituales en muchos casos de uso de big data. Es muy adecuado para el procesamiento de datos en tiempo real o 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 relacionales en absoluto. Las aplicaciones HBase están escritas en Java ™ de forma muy similar a una aplicación Apache MapReduce típica. HBase admite la escritura de aplicaciones en Apache Avro, REST y Thrift.
Un sistema HBase está diseñado para escalar linealmente. Comprende 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 de HBase deben usar esta clave principal.
Avro, como componente, admite un amplio conjunto de tipos de datos primitivos, entre los que se incluyen: datos numéricos, binarios y cadenas; y un serial de tipos complejos, como matrices, mapas, enumeraciones y registros. También se puede definir un criterio de clasificación para los datos.
HBase se basa 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 fallas.