Apache HBase
# Apache HBase

HBase es un sistema gestor de base de datos distribuida no relacional de código abierto modelada a partir de Google BigTable y escrita en Java. Su desarrollo forma parte del proyecto Hadoop de la Fundación de Software Apache y se ejecuta sobre HDFS (el sistema de archivos distribuidos de Hadoop), proporcionando capacidades al estilos de BigTable para Hadoop. Es decir, proporciona una forma tolerante de fallos de almacenar grandes cantidades de datos dispersos (pequeñas cantidades de información inmersas dentro de una gran colección de datos inexistentes o poco significativos, tales como la búsqueda de los 50 mayores elementos en un grupo de 2 mil millones de registros, o la búsqueda de elementos distintos de cero que representan menos del 0,1% de una enorme colección).

HBase incluye operaciones de compresión en memoria, y filtro de Bloom sobre la base de cada columna como se propone en el artículo original sobre BigTable. Las tablas en HBase pueden servir como entrada o salida para tareas MapReduce en Hadoop, y se puede acceder a través del API en Java, como servicio REST, o con los API de conexión Avro y Thrift. Hbase es un almacén de datos orientado a columnas de tipo clave-valor y basado en Hadoop y HDFS. HBase se ejecuta sobre HDFS y es adecuado para acelerar operaciones de lectura y escritura en los grandes conjuntos de datos con un alto rendimiento y una baja latencia de entrada/salida.

HBase no remplaza las bases de datos SQL clásicas, sin embargo el proyecto Apache Phoenix proporciona una capa de SQL para Hbase así como acceso vía el API JDBC que puede ser integrado con diversas herramientas de analítica de datos e inteligencia de negocios. El proyecto Apache Trafodion proporciona un motor de consulta SQL con drivers ODBC y JDBC y protección de transacciones ACID distribuidas a través de múltiples consultas, tablas y filas utilizando HBase como motor de almacenamiento.

Actualmente, Hbase se utiliza en sitios web orientados a datos, incluyendo la plataforma de mensajería de Facebook. A diferencia de las bases de datos relacionales tradicionales, HBase no da soporte a consultas SQL sino a scripts escritos en Java que emplean un motor de cálculo similar a MapReduce.

En términos del teorema CAP de Eric Brewer, HBase es un tipo de sistema CP (consistencia y tolerancia a particiones).

## Historia

Apache HBase empezó como un proyecto de la empresa Powerset para satisfacer sus necesidades de proceso masivo de datos de las búsquedas en lenguaje natural. Actualmente es un proyecto Apache de nivel superior.

Facebook seleccionó Hbase para implementar su nueva plataforma de mensajería en noviembre de 2010.

