Descripción general de la arquitectura de almacenamiento HBase



La arquitectura de HBase Storage comprende numerosos componentes. Veamos las funciones de estos componentes y sepamos cómo se escriben los datos.

Apache HBase es una base de datos no relacional, distribuida y de código abierto inspirada en Bigtable de Google y escrita en Java. Proporciona capacidades similares a Bigtable además de Hadoop y HDFS (Hadoop Distributed Filesystem), es decir, proporciona una forma tolerante a fallas de almacenar grandes cantidades de datos dispersos, que son comunes en muchos casos de uso de big data. HBase se utiliza para acceso de lectura / escritura en tiempo real a Big Data.





La arquitectura de almacenamiento de HBase comprende numerosos componentes. Veamos las funciones de estos componentes y sepamos cómo se escriben los datos.

HFiles:



HFiles forma el nivel bajo de la arquitectura de HBase. Los HFiles son archivos de almacenamiento creados para almacenar los datos de HBase de manera rápida y eficiente.

HMaster:

El HMaster es responsable de asignar las regiones a cada HRegionServer cuando se inicia HBase. Se encarga de gestionar todo lo relacionado con filas, tablas y sus actividades de coordinación. El Hmaster también tiene los detalles de los metadatos.



Componentes de HBase:

HBase tiene los siguientes componentes:

  • Tabla: incluye regiones
  • Región: rango de filas almacenadas juntas
  • Servidores de región: sirve a una o más regiones
  • Servidor maestro: Daemon es responsable de administrar el clúster de HBase

HBase almacena datos directamente en HDFS y se basa en gran medida en la alta disponibilidad y la tolerancia a fallas de HDFS.

Arquitectura de almacenamiento HBase:

Arquitectura de almacenamiento HBase

El flujo general es que un Cliente contacta al Zookeeper primero para encontrar una clave de fila en particular. Lo hace recuperando el nombre del servidor de Zookeeper. Con esta información, ahora puede consultar ese servidor para obtener el servidor que contiene la metatabla. Ambos detalles se almacenan en caché y solo se buscan una vez. Por último, puede consultar el metaservidor y recuperar el servidor que tiene la fila que el cliente está buscando.

Una vez que sabe en qué región reside la fila, también almacena en caché esta información y se comunica directamente con el HRegionServer. Entonces, con el tiempo, el Cliente tiene información completa de dónde obtener las filas sin necesidad de consultar el metaservidor nuevamente. Cuando se abre HRegion, configura una instancia de Store para cada HColumnFamily para cada tabla. Los datos se escriben cuando el Cliente envía una solicitud al HRegionServer que proporciona los detalles a la instancia de HRegion correspondiente. El primer paso es que tenemos que decidir si los datos deben escribirse primero en el 'Registro de escritura anticipada' (WAL) representado por la clase HLog. La decisión se basa en la bandera establecida por el cliente.
Una vez que los datos se escriben en WAL, se colocan en MemStore. Al mismo tiempo, se comprueba si el Memstore está lleno y, en ese caso, se solicita un vaciado en el disco. Luego, los datos se escriben en HFile.

Tienes una pregunta para nosotros? Menciónalos en la sección de comentarios y nos pondremos en contacto contigo.

Artículos Relacionados

pasar por valor vs pasar por referencia java

Perspectivas sobre la arquitectura HBase