Mecanismo de almacenamiento en HBase
HBase es una base de datos orientada a columnas y los datos se almacenan en tablas. Las tablas están ordenadas por RowId. Como se muestra a continuación, HBase tiene RowId, que es la colección de varias familias de columnas que están presentes en la tabla.
Las familias de columnas que están presentes en el esquema son pares clave-valor. Si observamos en detalle cada familia de columnas tiene varios números de columnas. Los valores de columna almacenados en la memoria del disco. Cada celda de la tabla tiene sus propios metadatos, como la marca de tiempo y otra información.
Al llegar a HBase, los siguientes son los términos clave que representan el esquema de tabla
- 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 : agrupación lógica de tablas.
- Celda : una tupla de {fila, columna, versión} especifica exactamente una definición de celda en HBase.
En este tutorial, aprenderá,
- Mecanismo de almacenamiento en HBase
- Modelo de datos HBase
- Arquitectura HBase y sus componentes importantes
- Explicación de los datos de lectura y escritura de HBase
- Casos de uso de HBase
- HBASE frente a HDFS
Almacenamientos orientados a columnas vs orientados a filas
Los almacenamientos orientados a columnas y filas difieren en su mecanismo de almacenamiento. Como todos sabemos, los modelos relacionales tradicionales almacenan datos en términos de formato basado en filas como en términos de filas de datos. Los almacenamientos orientados a columnas almacenan tablas de datos en términos de columnas y familias de columnas.
La siguiente tabla muestra algunas diferencias clave entre estos dos almacenamientos
Base de datos orientada a columnas | Base de datos orientada a filas |
|
|
|
|
Modelo de datos HBase
El modelo de datos HBase es un conjunto de componentes que consta de 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 los atributos de los objetos.
El modelo de datos HBase consta de los siguientes elementos,
- Juego de mesas
- Cada tabla con familias de columnas y filas.
- Cada tabla debe tener un elemento definido como Clave principal.
- La clave de fila actúa como clave principal en HBase.
- Cualquier acceso a las tablas de HBase utiliza esta clave principal
- Cada columna presente en HBase denota el atributo correspondiente al objeto
Arquitectura HBase y sus componentes importantes
A continuación se muestra un architrecutre detallado de HBase con componentes:
La arquitectura HBase consta principalmente de cuatro componentes
- HMaster
- HRegionserver
- HRegiones
- Guardián del zoológico
- HDFS
HMaster:
HMaster en HBase es la implementación de un servidor Master en arquitectura HBase. Actúa como un agente de monitoreo para monitorear todas las instancias de Region Server presentes en el clúster y actúa como una interfaz para todos los cambios de metadatos. En un entorno de clúster distribuido, Master se ejecuta en NameNode. Master ejecuta varios subprocesos en segundo plano.
Los siguientes son roles importantes realizados por HMaster en HBase.
- Desempeña un papel vital en términos de rendimiento y mantenimiento de nodos en el clúster.
- HMaster proporciona rendimiento administrativo y distribuye servicios a servidores de diferentes regiones.
- HMaster asigna regiones a servidores de regiones.
- HMaster tiene características como controlar el equilibrio de carga y la conmutación por error para manejar la carga sobre los nodos presentes en el clúster.
- Cuando un cliente desea cambiar cualquier esquema y cambiar cualquier operación de metadatos, HMaster asume la responsabilidad de estas operaciones.
Algunos de los métodos expuestos por HMaster Interface son principalmente métodos orientados a metadatos.
- Tabla (createTable, removeTable, habilitar, deshabilitar)
- ColumnFamily (agregar columna, modificar columna)
- Región (mover, asignar)
El cliente se comunica de forma bidireccional tanto con HMaster como con ZooKeeper. Para operaciones de lectura y escritura, contacta directamente con los servidores de HRegion. HMaster asigna regiones a los servidores de la región y, a su vez, verifica el estado de salud de los servidores de la región.
En toda la arquitectura, tenemos varios servidores de regiones. Hlog presente en los servidores de la región que van a almacenar todos los archivos de registro.
Servidores de regiones HBase:
Cuando HBase Region Server recibe solicitudes de escritura y lectura del cliente, asigna la solicitud a una región específica, donde reside la familia de columnas real. Sin embargo, el cliente puede contactar directamente con los servidores de HRegion, no es necesario el permiso obligatorio de HMaster para el cliente con respecto a la comunicación con los servidores de HRegion. El cliente requiere la ayuda de HMaster cuando se requieren operaciones relacionadas con metadatos y cambios de esquema.
HRegionServer es la implementación del servidor de región. Es responsable de servir y administrar regiones o datos que están presentes en un clúster distribuido. Los servidores de la región se ejecutan en los nodos de datos presentes en el clúster de Hadoop.
HMaster puede ponerse en contacto con varios servidores HRegion y realiza las siguientes funciones.
- Hospedaje y administración de regiones
- División automática de regiones
- Manejo de solicitudes de lectura y escritura
- Comunicarse con el cliente directamente
Regiones HBase:
Las HRegions son los elementos de construcción básicos del clúster HBase que consiste en la distribución de tablas y se componen de familias de columnas. Contiene varias tiendas, una para cada familia de columnas. Consta principalmente de dos componentes, que son Memstore y Hfile.
ZooKeeper:
HBase Zookeeper es un servidor de supervisión centralizado que mantiene la información de configuración y proporciona sincronización distribuida. La sincronización distribuida consiste en acceder a las aplicaciones distribuidas que se ejecutan en el clúster con la responsabilidad de proporcionar servicios de coordinación entre nodos. Si el cliente desea comunicarse con las regiones, el cliente del servidor debe acercarse primero a ZooKeeper.
Es un proyecto de código abierto y proporciona muchos servicios importantes.
Servicios proporcionados por ZooKeeper
- Mantiene la información de configuración
- Proporciona sincronización distribuida
- Establecimiento de comunicación con el cliente con los servidores de la región
- Proporciona nodos efímeros para los que representan servidores de diferentes regiones.
- Capacidad de uso de servidores maestros de nodos efímeros para descubrir servidores disponibles en el clúster
- Para rastrear fallas del servidor y particiones de red
Los nodos maestro y esclavo de HBase (servidores de región) se registraron con ZooKeeper. El cliente necesita acceso a la configuración del quórum ZK (guardián del zoológico) para conectarse con los servidores maestros y regionales.
Durante una falla de los nodos que se encuentran en el clúster HBase, ZKquoram activará mensajes de error y comenzará a reparar los nodos fallados.
HDFS:
HDFS es un sistema de archivos distribuido de Hadoop, como su nombre lo indica, proporciona un entorno distribuido para el almacenamiento y es un sistema de archivos diseñado para ejecutarse en hardware básico. Almacena cada archivo en varios bloques y, para mantener la tolerancia a fallos, los bloques se replican en un clúster de Hadoop.
HDFS proporciona un alto grado de tolerancia a fallos y se ejecuta en hardware básico económico. Al agregar nodos al clúster y realizar el procesamiento y almacenamiento mediante el uso de hardware básico económico, le dará al cliente mejores resultados en comparación con el existente.
Aquí, los datos almacenados en cada bloque se replican en 3 nodos, en caso de que algún nodo se caiga, no habrá pérdida de datos, tendrá un mecanismo de recuperación de respaldo adecuado.
HDFS se pone en contacto con los componentes de HBase y almacena una gran cantidad de datos de forma distribuida.
Explicación de los datos de lectura y escritura de HBase
Las operaciones de lectura y escritura desde el cliente en Hfile se pueden mostrar en el siguiente diagrama.
Paso 1) El cliente desea escribir datos y, a su vez, primero se comunica con el servidor de Regions y luego con las regiones.
Paso 2) Regiones contactando memstore para almacenar asociados con la familia de columnas
Paso 3) Primero, los datos se almacenan en Memstore, donde se clasifican los datos y, luego, se vacían en HFile. La razón principal para usar Memstore es almacenar datos en un sistema de archivos distribuido basado en Row Key. Memstore se colocará en la memoria principal del servidor de la región mientras que los archivos H se escriben en HDFS.
Paso 4) El cliente desea leer datos de Regions
Paso 5) A su vez, el Cliente puede tener acceso directo a Mem store y puede solicitar datos.
Paso 6) El cliente se acerca a HFiles para obtener los datos. El Cliente obtiene y recupera los datos.
Memstore contiene modificaciones en memoria de la tienda. La jerarquía de objetos en las regiones HBase se muestra de arriba a abajo en la siguiente tabla.
Mesa | Tabla de HBase presente en el clúster de HBase |
Región | HRegiones para las tablas presentadas |
Tienda | Almacena por ColumnFamily para cada región de la tabla |
Memstore |
|
StoreFile | StoreFiles para cada tienda para cada región de la tabla |
Cuadra | Bloques presentes dentro de StoreFiles |
Casos de uso de HBase
A continuación se muestran ejemplos de casos de uso de HBase con una explicación detallada de la solución que proporciona a varios problemas técnicos.
Planteamiento del problema | Solución |
---|---|
La industria de las telecomunicaciones se enfrenta a los siguientes desafíos técnicos
| 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. |
La industria bancaria genera millones de registros a diario. Además de esto, la industria bancaria también necesita una solución de análisis que pueda 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 de Hadoop. |
Aparte de eso, HBase se puede utilizar
- Siempre que sea necesario escribir aplicaciones pesadas.
- Realización de análisis de registros en línea y generación de informes de cumplimiento.
HBase frente a HDFS
HBase se ejecuta sobre HDFS y Hadoop. Algunas diferencias clave entre HDFS y HBase se encuentran en términos de operaciones y procesamiento de datos.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Algunas aplicaciones industriales de TI típicas utilizan operaciones HBase junto con Hadoop. Las aplicaciones incluyen datos de la bolsa de valores, operaciones de datos bancarios en línea y procesamiento Hbase es el método de solución más adecuado.
Resumen
Hbase es una de las bases de datos distribuidas orientadas a columnas NoSql disponibles en la fundación apache. HBase ofrece más rendimiento para recuperar menos registros en lugar de Hadoop o Hive. Es muy fácil de buscar dado cualquier valor de entrada porque admite indexación, transacciones y actualización.
Podemos realizar análisis en línea en tiempo real utilizando Hbase integrado con el ecosistema Hadoop. Tiene una fragmentación automática y configurable para conjuntos de datos o tablas y proporciona API tranquilas para realizar los trabajos de MapReduce.