Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-14 GMT+08:00

Principios básicos de HBase

HBase lleva a cabo el almacenamiento de datos. HBase es un sistema de almacenamiento distribuido de código abierto, orientado a columnas que es adecuado para almacenar cantidades masivas de datos no estructurados o semiestructurados. Cuenta con alta confiabilidad, alto rendimiento y escalabilidad flexible, y admite lectura/escritura de datos en tiempo real. Para obtener más información acerca de HBase, consulte https://hbase.apache.org/.

Las características típicas de una tabla almacenada en HBase son las siguientes:

  • Tabla grande (BigTable): Una tabla contiene cientos de millones de filas y millones de columnas.
  • Orientado a columnas: almacenamiento orientado a columnas, recuperación y control de permisos
  • Disperso: las columnas nulas de la tabla no ocupan ningún espacio de almacenamiento.

Además, MRS HBase admite indexación secundaria para permitir que se creen índices para valores de columna de modo que los datos se puedan filtrar por columna usando API HBase nativas.

Arquitectura de HBase

Un clúster de HBase consta de procesos de HMaster activos y en espera y múltiples procesos de RegionServer.

Figura 1 Arquitectura de HBase
Tabla 1 Descripción del módulo

Módulo

Descripción

Master

Master también se llama HMaster. En modo de HA, HMaster consiste en un HMaster activo y un HMaster en espera.

  • Active Master: gestiona RegionServer en HBase, incluida la creación, eliminación, modificación y consulta de una tabla, equilibra la carga de RegionServer, ajusta la distribución de Region, divide Region y distribuye Region después de dividirse, y migra Region después de que RegionServer caduque.
  • Master en espera: se hace cargo de los servicios cuando el HMaster activo está defectuoso. El HMaster activo original se degrada al HMaster en espera después de rectificar la falla.

Client

Client se comunica con Master para la gestión y con RegionServer para la protección de datos mediante el mecanismo de llamada a procedimiento remoto (RPC) de HBase.

RegionServer

RegionServer proporciona servicios de lectura y escritura de datos de tablas como una unidad de procesamiento de datos y computación en HBase.

RegionServer se implementa con DataNodes de clústeres HDFS para almacenar datos.

ZooKeeper cluster

ZooKeeper ofrece servicios de coordinación distribuida para procesos en clústeres de HBase. Cada RegionServer está registrado en ZooKeeper para que Master activo pueda obtener el estado de salud de cada RegionServer.

HDFS cluster

HDFS proporciona servicios de almacenamiento de archivos altamente confiables para HBase. Todos los datos de HBase se almacenan en el HDFS.

Principios de HBase

  • Modelo de datos de HBase

    HBase almacena los datos en tablas, como se muestra en Figura 2. Los datos de una tabla se dividen en varias Regiones, que el Master asigna a RegionServers para su gestión.

    Cada Region contiene datos dentro de un rango de RowKey. Una tabla de datos de HBase contiene solo un Region al principio. A medida que aumenta el número de datos y alcanza el límite superior de la capacidad de Region, el Region se divide en dos Regions. Puede definir el rango RowKey de un Region al crear una tabla o definir el tamaño de Region en el archivo de configuración.

    Figura 2 Modelo de datos de HBase
    Tabla 2 Conceptos

    Módulo

    Descripción

    RowKey

    Similar a la clave principal de una tabla de relaciones, que es el ID único de los datos de cada fila. Un RowKey puede ser una cadena, un entero o una cadena binaria. Todos los registros se almacenan después de ser ordenados por RowKey.

    Timestamp

    La marca de tiempo de una operación de datos. Los datos se pueden especificar con diferentes versiones por sello de tiempo. Los datos de diferentes versiones en cada celda se almacenan por tiempo en orden descendente.

    Cell

    Unidad de almacenamiento mínima de HBase, que consta de claves y valores. Una clave consta de seis campos, a saber, row, column family, column qualifier, timestamp, type, and MVCC version. Los valores son los objetos de datos binarios.

    Column Family

    Una o varias familias de columnas horizontales forman una tabla. Una familia de columnas puede consistir en varias columnas aleatorias. Una columna es una etiqueta bajo una familia de columnas, que se puede agregar según sea necesario cuando se escriben datos. La familia de columnas admite la expansión dinámica, por lo que no es necesario que el número y el tipo de columnas estén predefinidos. Las columnas de una tabla en HBase están escasamente distribuidas. El número y el tipo de columnas en diferentes filas pueden ser diferentes. Cada familia de columnas tiene el tiempo de vida independiente (TTL). Solo puede bloquear la fila. Las operaciones de la fila de una familia de columnas son las mismas que las de las demás filas.

    Column

    Similar a las bases de datos tradicionales, las tablas de HBase también utilizan columnas para almacenar datos del mismo tipo.

  • Almacenamiento de datos de RegionServer

    RegionServer gestiona las regiones asignadas por HMaster. Figura 3 muestra la estructura de almacenamiento de datos de RegionServer.

    Figura 3 Estructura de almacenamiento de datos de RegionServer

    Tabla 3 enumera cada componente de la región descrito en Figura 3.

    Tabla 3 Descripción de la estructura de la región

    Módulo

    Descripción

    Store

    Un Region se compone de una o varias Stores. Cada Store asigna una familia de columnas en Figura 2.

    MemStore

    Un Store contiene un MemStore. El MemStore almacena en caché los datos insertados en un Region por el cliente. Cuando la capacidad de MemStore alcanza el límite superior, RegionServer vacia los datos de MemStore a HDFS.

    StoreFile

    Los datos enviados al HDFS se almacenan como StoreFile en el HDFS. A medida que se insertan más datos, se generan múltiples StoreFiles en un Store. Cuando el número de StoreFiles alcanza el límite superior, RegionServer fusiona varios StoreFiles en un StoreFile grande.

    HFile

    HFile define el formato de almacenamiento de StoreFiles en un sistema de archivos. HFile es la implementación subyacente de StoreFile.

    HLog

    HLogs evitan la pérdida de datos cuando RegionServer es defectuoso. Múltiples regiones en un RegionServer comparten el mismo HLog.

  • Tabla de metadatos

    La tabla de metadatos es una tabla HBase especial, que es utilizada por el cliente para localizar una región. La tabla de metadatos incluye una tabla hbase:meta para registrar información de región de las tablas de usuario, como la ubicación de región y las RowKey de inicio y fin.

    Figura 4 muestra la relación de asignación entre las tablas de metadatos y las tablas de usuario.

    Figura 4 Asignación de relaciones entre tablas de metadatos y tablas de usuario
  • Proceso de operación de datos
    Figura 5 muestra el proceso de operación de datos de HBase.
    Figura 5 Procesamiento de datos
    1. Cuando agrega, elimina, modifica y consulta datos de HBase, el cliente de HBase primero se conecta a ZooKeeper para obtener información sobre el RegionServer donde se encuentra la tabla hbase:meta. Si modifica el espacio de nombres, como crear y eliminar una tabla, debe acceder a HMaster para actualizar la información de metadatos.
    2. HBase Client se conecta al RegionServer donde se encuentra la región de la tabla hbase:meta y obtiene la ubicación RegionServer donde reside la región de la tabla de usuario.
    3. A continuación, el HBase client se conecta al RegionServer donde se encuentra la región de la tabla de usuario y emite un comando de operación de datos al RegionServer. El RegionServer ejecuta el comando.

    Para mejorar la eficiencia del procesamiento de datos, el cliente HBase almacena en caché la información de región de la tabla hbase:meta y la tabla de usuario. Cuando una aplicación inicia una segunda operación de datos, el HBase client consulta la información de región de la memoria. Si no se encuentra ninguna coincidencia en la memoria, el HBase client realiza las operaciones anteriores para obtener información de región.