HBase ArchiTecnología: casos de uso, componentes y modelo de datos
⚡ Resumen inteligente
La arquitectura de HBase se compone de cuatro componentes coordinados —HMaster, servidores de región, ZooKeeper y HDFS— que almacenan datos en un modelo orientado a columnas, los dividen en regiones y permiten lecturas y escrituras aleatorias de baja latencia.

Apache HBase es una base de datos NoSQL distribuida y orientada a columnas que se ejecuta sobre Hadoop y el Sistema de Archivos Distribuidos de Hadoop (HDFS). Su arquitectura combina un maestro coordinador, servidores de región y ZooKeeper para almacenar tablas muy grandes y permitir lecturas y escrituras aleatorias rápidas.
HBase Architectura y sus componentes importantes
La arquitectura de HBase tiene los siguientes componentes principales:
- Maestro
- HRegiónServidor
- HRegiones
- guardián del zoológico
- HDFS
A continuación se muestra la arquitectura detallada de HBase con sus componentes, tal como se muestra en el diagrama.
Maestro
HMaster en HBase es la implementación de un servidor maestro en la arquitectura de HBase. Actúa como agente de monitorización para supervisar todas las instancias de Region Server presentes en el clúster y como interfaz para todos los cambios de metadatos. En un entorno de clúster distribuido, el maestro se ejecuta en el NameNode. El maestro ejecuta varios hilos en segundo plano.
A continuación se describen las funciones importantes que desempeña HMaster en HBase:
- Desempeña un papel vital en términos de rendimiento y mantenimiento de los nodos del clúster.
- HMaster proporciona rendimiento administrativo y distribuye servicios a servidores de diferentes regiones.
- HMaster asigna regiones a servidores de regiones.
- HMaster controla el equilibrio de carga y la conmutación por error para gestionar la carga en los nodos presentes en el clúster.
- Cuando un cliente desea modificar algún esquema o realizar alguna operación de metadatos, HMaster se responsabiliza de dichas operaciones.
Algunos de los métodos expuestos por la interfaz HMaster son principalmente métodos orientados a metadatos:
- Tabla (crearTabla, eliminarTabla, habilitar, deshabilitar)
- ColumnFamily (agregar columna, modificar columna)
- Región (mover, asignar)
El cliente se comunica de forma bidireccional con HMaster y ZooKeeper. Para las operaciones de lectura y escritura, contacta directamente con los servidores HRegion. HMaster asigna regiones a los servidores de región y, a su vez, verifica el estado de salud de estos últimos.
En toda la arquitectura, contamos con varios servidores de región. En los servidores de región hay un HLog que almacena todos los archivos de registro.
Servidores de región HBase
Cuando un servidor de región de HBase recibe solicitudes de lectura y escritura del cliente, las asigna a una región específica donde reside la familia de columnas. El cliente puede contactar directamente con los servidores HRegion; no se requiere ningún permiso HMaster para comunicarse con ellos. El cliente solo necesita la ayuda de HMaster cuando se requieren operaciones relacionadas con cambios de metadatos y esquemas.
HRegionServer es la implementación del servidor de regiones. Se encarga de gestionar las regiones, es decir, los datos presentes en un clúster distribuido. Los servidores de regiones se ejecutan en los nodos de datos del clúster Hadoop.
HMaster puede ponerse en contacto con varios servidores HRegion y realiza las siguientes funciones:
- Alojamiento y gestión de regiones
- Dividir regiones automáticamente
- Gestión de solicitudes de lectura y escritura
- Comunicarse con el cliente directamente.
Regiones HBase
Las regiones H son los elementos básicos de un clúster HBase. Consisten en la distribución de tablas y están compuestas por familias de columnas. Una región contiene varios almacenes, uno para cada familia de columnas. Se compone principalmente de dos elementos: el MemStore y el HFile.
guardián del zoológico
HBase guardián del zoológico ZooKeeper es un servidor de monitorización centralizado que mantiene la información de configuración y proporciona sincronización distribuida. La sincronización distribuida coordina las aplicaciones distribuidas que se ejecutan en el clúster, ofreciendo servicios de coordinación entre los nodos. Si el cliente desea comunicarse con las regiones, primero debe acceder a ZooKeeper.
Es un proyecto de código abierto y proporciona muchos servicios importantes.
Servicios prestados por ZooKeeper:
- Mantiene la información de configuración
- Proporciona sincronización distribuida
- Establece comunicación entre el cliente y los servidores regionales.
- Proporciona nodos efímeros que representan diferentes servidores de región.
- Permite que el servidor maestro utilice estos nodos efímeros para descubrir los servidores disponibles en el clúster.
- TracFallo del servidor ks y particiones de red
Los nodos maestro y esclavo de HBase (servidores de región) se registran en ZooKeeper. El cliente necesita acceso a la configuración de quórum de ZooKeeper (ZK) para conectarse con los servidores maestro y de región.
En caso de fallo de los nodos presentes en el clúster de HBase, el quórum de ZooKeeper activa mensajes de error y comienza a reparar los nodos que han fallado.
HDFS
HDFS es el sistema de archivos distribuido de Hadoop. Sistema de archivosComo su nombre indica, proporciona un entorno distribuido para el almacenamiento y es un sistema de archivos diseñado para ejecutarse en hardware estándar. Almacena cada archivo en múltiples bloques y, para garantizar la tolerancia a fallos, estos bloques se replican en un clúster Hadoop.
HDFS ofrece un alto grado de tolerancia a fallos y funciona con hardware estándar económico. Al añadir nodos al clúster y realizar el procesamiento y el almacenamiento con hardware estándar económico, se obtienen mejores resultados para el cliente en comparación con la configuración actual.
En este sistema, los datos almacenados en cada bloque se replican en 3 nodos, por lo que si alguno falla, no habrá pérdida de datos; cuenta con un mecanismo adecuado de copia de seguridad y recuperación.
HDFS se comunica con los componentes de HBase y almacena una gran cantidad de datos de forma distribuida.
Modelo de datos HBase
El modelo de datos de HBase es un conjunto de componentes que incluye tablas, filas, familias de columnas, celdas, columnas y versiones. Las tablas de HBase contienen familias de columnas y filas, con elementos definidos como claves primarias. Una columna en la tabla del modelo de datos de HBase representa un atributo de los objetos.
El modelo de datos de HBase consta de los siguientes elementos:
- conjunto de mesas
- Cada tabla con familias de columnas y filas.
- Cada tabla debe tener un elemento definido como clave primaria.
- La clave de fila actúa como clave primaria en HBase.
- Cualquier acceso a las tablas de HBase utiliza esta clave primaria.
- Cada columna presente en HBase denota un atributo que corresponde a un objeto.
Casos de uso de HBase
A continuación se presentan ejemplos de casos de uso de HBase con una explicación detallada de la solución que HBase proporciona a diversos problemas técnicos.
| Planteamiento del problema | Solución |
| La industria de las telecomunicaciones se enfrenta a los siguientes retos técnicos: almacenar miles de millones de registros de detalles de llamadas (CDR, por sus siglas en inglés) generados por el sector; proporcionar acceso en tiempo real a los registros CDR y a la información de facturación de los clientes; y ofrecer una solución rentable en comparación con los sistemas de bases de datos tradicionales. | HBase se utiliza para almacenar miles de millones de filas de registros de llamadas detallados. Si se agregan 20 TB de datos por mes a la base de datos RDBMS existente, el rendimiento se deteriorará. Para manejar una gran cantidad de datos en este caso de uso, HBase es la mejor solución. HBase realiza consultas rápidas y muestra registros. |
| El sector bancario genera millones de registros diariamente. Además, necesita una solución analítica que permita detectar el fraude en las transacciones monetarias. | Para almacenar, procesar y actualizar grandes volúmenes de datos y realizar análisis, una solución ideal es HBase integrado con varios componentes del ecosistema Hadoop. |
Además de eso, se puede utilizar HBase:
- Siempre que se necesiten aplicaciones con mucha escritura.
- Para realizar análisis de registros en línea y generar informes de cumplimiento.
Mecanismo de almacenamiento en HBase
HBase es una base de datos orientada a columnas, y los datos se almacenan en tablas. Las tablas se ordenan por RowId. Como se muestra a continuación, HBase tiene un RowId, que es la colección de varias familias de columnas presentes en la tabla.
Las familias de columnas presentes en el esquema son pares clave-valor. Si observamos con detalle, cada familia de columnas tiene varias columnas. Los valores de las columnas se almacenan en la memoria del disco. Cada celda de la tabla tiene sus propios metadatos, como una marca de tiempo y otra información.
A continuación se muestra la disposición de almacenamiento orientada a columnas, con claves de fila, familias de columnas y celdas.
Los siguientes son los términos clave que representan un esquema de tabla de HBase:
- Tabla: Colección de filas presentes.
- Fila: Colección de familias de columnas.
- Familia de columnas: Colección de columnas.
- Columna: Colección de pares clave-valor.
- Espacio de nombres: Grupo lógicoping de mesas.
- Celda: Una tupla {fila, columna, versión} que especifica con exactitud la definición de una celda en HBase.
Almacenamiento orientado a columnas versus almacenamiento orientado a filas
Los sistemas de almacenamiento orientados a columnas y a filas difieren en su mecanismo de almacenamiento. Como es sabido, los modelos relacionales tradicionales almacenan los datos en formato de filas, es decir, en filas de datos. Los sistemas de almacenamiento orientados a columnas almacenan las tablas de datos en términos de columnas y familias de columnas.
La siguiente tabla muestra algunas diferencias clave entre estos dos sistemas de almacenamiento.
| Base de datos orientada a columnas | Base de datos orientada a filas |
| Se utiliza cuando la situación implica procesamiento y análisis, como el procesamiento analítico en línea y sus aplicaciones. | El procesamiento de transacciones en línea, como en los ámbitos bancario y financiero, utiliza este enfoque. |
| La cantidad de datos que se pueden almacenar en este modelo es muy grande, en términos de petabytes. | Está diseñado para una pequeña cantidad de filas y columnas. |
Explicación de lectura y escritura de datos de HBase
Las operaciones de lectura y escritura desde el cliente hacia el archivo HFile se muestran en el siguiente diagrama.
Paso 1) El cliente quiere escribir datos y, a su vez, primero se comunica con el servidor de región y luego con las regiones.
Paso 2) La región se comunica con MemStore para almacenar los datos asociados con la familia de columnas.
Paso 3) Primero, los datos se almacenan en MemStore, donde se ordenan, y luego se transfieren a HFile. La principal razón para usar MemStore es almacenar datos en un sistema de archivos distribuido basado en la clave de fila. MemStore se ubica en la memoria principal del servidor de región, mientras que los archivos HFile se escriben en HDFS.
Paso 4) El cliente quiere leer datos de las regiones.
Paso 5) A su vez, el cliente puede tener acceso directo al MemStore y solicitar datos.
Paso 6) El cliente accede a HFiles para obtener los datos. El cliente obtiene y recupera los datos.
El MemStore almacena las modificaciones realizadas en memoria al almacén. La jerarquía de objetos en las regiones de HBase, de arriba a abajo, se muestra en la tabla siguiente.
| Tabla | Tabla HBase presente en el clúster HBase |
| Región | H Regiones para las tablas presentadas |
| Tienda | Almacena uno por familia de columnas para cada región de la tabla. |
| TiendaMem | MemStore para cada almacenamiento en cada región de la tabla. Ordena los datos antes de volcarlos en HFiles. El rendimiento de lectura y escritura aumenta gracias a la ordenación. |
| almacenar archivo | StoreFiles para cada tienda para cada región de la tabla |
| Bloquear | Bloques presentes dentro de StoreFiles |
HBase frente a HDFS
HBase se ejecuta sobre HDFS y Hadoop. Algunas diferencias clave entre HDFS y HBase radican en las operaciones y el procesamiento de datos.
| HBase | HDFS |
| Operaciones de baja latencia | Operaciones de alta latencia |
| Lecturas y escrituras aleatorias | Escribe una vez, lee muchas veces. |
| Accedido a través de comandos de shell, una API de cliente en Java, REST, Avro o Thrift | Se accede principalmente a través de MapReduce (MR) empleos |
| Se pueden realizar tanto el almacenamiento como el procesamiento. | Es solo para áreas de almacenamiento |
Algunas aplicaciones industriales de TI típicas utilizan operaciones de HBase junto con Hadoop. Las aplicaciones incluyen operaciones con datos de bolsa de valores y datos de banca en línea, donde HBase es la solución más adecuada. Una vez que su clúster esté listo, podrá leer y escribir datos en HBase or Instalar HBase en un nodo nuevo.



