HBase es un sistema de gestión de bases de datos no relacionales orientado a columnas que se ejecuta sobre Hadoop Distributed File System (HDFS). HBase proporciona una forma tolerante a fallas de almacenar conjuntos de datos escasos, que son comunes 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.
Diferente asistemas 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 en absoluto. Las aplicaciones HBase están escritas en Java™, como una típica aplicación deApache MapReduce. HBase admite aplicaciones de escritura en Apache Avro, REST and 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 utilizar esta clave principal.
Avro, como componente, admite un amplio conjunto de tipos de datos primitivos que incluyen: cadenas y datos numéricos, binarios; y varios tipos complejos que incluyen matrices, mapas, enumeraciones y registros. También se puede definir una orden de clasificación para los datos.
HBase se basa enZooKeeper 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 conHive , un motor de consulta para el procesamiento por lotes de big data, para habilitar aplicaciones de big data tolerantes a fallas.