Tanto HBase como HDFS en una imagen
Nota:
Verifique que los demonios HDFS (resaltados en verde) como DataNode (Servidores de región colocados) y NameNode en el clúster tengan HBase y Hadoop HDFS
HDFS es un sistema de archivos distribuido que es muy adecuado para el almacenamiento de archivos grandes. que no proporciona búsquedas rápidas de registros individuales en archivos.
HBase , por otro lado, está construido sobre HDFS y proporciona búsquedas rápidas de registros (y actualizaciones) para tablas grandes. Esto a veces puede ser un punto de confusión conceptual. HBase coloca internamente sus datos en "StoreFiles" indexados que existen en HDFS para búsquedas de alta velocidad.
¿Cómo se ve esto?
Bueno, a nivel de infraestructura, cada máquina salve en el clúster tiene demonios siguientes
- Servidor de región - HBase
- Nodo de datos - HDFS
¿Cómo es rápido con las búsquedas?
HBase logra búsquedas rápidas en HDFS (a veces también en otros sistemas de archivos distribuidos) como almacenamiento subyacente, utilizando el siguiente modelo de datos
Mesa
- Una tabla HBase consta de varias filas.
Fila
- Una fila en HBase consta de una clave de fila y una o más columnas con valores asociados a ellas. Las filas se ordenan alfabéticamente por la tecla de fila a medida que se almacenan. Por esta razón, el diseño de la clave de fila es muy importante. El objetivo es almacenar datos de tal manera que las filas relacionadas estén cerca unas de otras. Un patrón de clave de fila común es un dominio de sitio web. Si sus claves de fila son dominios, probablemente debería almacenarlas al revés (org.apache.www, org.apache.mail, org.apache.jira). De esta manera, todos los dominios de Apache están cerca uno del otro en la tabla, en lugar de extenderse según la primera letra del subdominio.
Columna
- Una columna en HBase consta de una familia de columnas y un calificador de columna, que están delimitados por un carácter: (dos puntos).
Familia de columnas
- Las familias de columnas colocan físicamente un conjunto de columnas y sus valores, a menudo por razones de rendimiento. Cada familia de columnas tiene un conjunto de propiedades de almacenamiento, como si sus valores deben almacenarse en la memoria caché, cómo se comprimen sus datos o cómo se codifican sus claves de fila, y otros. Cada fila de una tabla tiene las mismas familias de columnas, aunque es posible que una fila dada no almacene nada en una familia de columnas dada.
Calificador de columna
- Se agrega un calificador de columna a una familia de columnas para proporcionar el índice de un dato dado. Dado el contenido de una familia de columnas, un calificador de columna podría ser content: html y otro podría ser content: pdf. Aunque las familias de columnas se arreglan en la creación de la tabla, los calificadores de columna son mutables y pueden diferir mucho entre filas.
Célula
- Una celda es una combinación de la fila, la familia de columnas y el calificador de columna, y contiene un valor y una marca de tiempo, que representa la versión del valor.
Marca de tiempo
- Se escribe una marca de tiempo junto a cada valor y es el identificador de una versión dada de un valor. De manera predeterminada, la marca de tiempo representa el tiempo en el Servidor de Región cuando se escribieron los datos, pero puede especificar un valor de marca de tiempo diferente cuando coloca datos en la celda.
Flujo de solicitud de lectura del cliente:
¿Cuál es la metatabla en la imagen de arriba?
Después de toda la información, el flujo de lectura de HBase es para búsquedas que tocan estas entidades
- Primero, el escáner busca las celdas de fila en el caché de bloques: el caché de lectura. Los valores clave recientemente leídos se almacenan en caché aquí, y los menos utilizados recientemente se expulsan cuando se necesita memoria.
- A continuación, el escáner busca en el MemStore , el caché de escritura en la memoria que contiene las escrituras más recientes.
- Si el escáner no encuentra todas las celdas de fila en MemStore y Block Cache, entonces HBase usará los índices de Block Cache y los filtros de floración para cargar HFiles en la memoria, que puede contener las celdas de fila de destino.
fuentes y más información:
- Modelo de datos de HBase
- HBase architecute