O HBase oferece uma maneira tolerante a falhas de armazenar conjuntos de dados esparsos, comuns em muitos casos de uso de big data. É adequado para processamento de dados em tempo real ou acesso aleatório de leitura/gravação a grandes volumes de dados.
Ao contrário dos sistemas de banco de dados relacionais, o HBase não é compatível com uma linguagem de consulta estruturada como o SQL; na verdade, o HBase não é um armazenamento de dados relacional. As aplicações do HBase são escritas em Java™ de forma muito parecida com uma aplicação do Apache MapReduce típica. O HBase é compatível com a gravação de aplicações no Apache Avro, REST e Thrift.
Um sistema do HBase é projetado para escalar de forma linear. É composto por um conjunto de tabelas padrão com linhas e colunas, muito parecido com um banco de dados tradicional. Cada tabela deve ter um elemento definido como chave primária, e todas as tentativas de acesso às tabelas do HBase devem usar essa chave primária.
O Avro, como componente, é compatível com um vasto conjunto de tipos de dados primitivos, incluindo: dados numéricos, binários e strings; e vários tipos complexos, incluindo matrizes, mapas, enumerações e registros. Uma ordem de classificação também pode ser definida para os dados.
O HBase conta com o ZooKeeper para coordenação de alto desempenho. O ZooKeeper é integrado ao HBase, mas se você estiver executando um cluster de produção, é recomendável que você tenha um cluster do ZooKeeper dedicado integrado ao cluster do HBase.
O HBase funciona bem com o Hive, um mecanismo de consulta para processamento de big data em lote, para permitir aplicações de big data tolerantes a falhas.