Introducción básica de HBase (1)

1. Introducción a NoSQL

1.1 ¿Qué es NoSQL?

NoSQL: no solo SQL, base de datos no relacional

NoSQL es un término general

  • Se refiere a bases de datos que no siguen el modelo RDBMS tradicional.
  • Los datos no son relacionales y no utilizan SQL como lenguaje de consulta principal.
  • Resuelva problemas de disponibilidad y escalabilidad de la base de datos
  • No aborda problemas de atomicidad o consistencia

imagen-20200924163336133

1.2 Por qué usar NoSQL

Con el desarrollo de Internet, las bases de datos relacionales tradicionales tienen cuellos de botella

  • Lectura y escritura concurrentes
  • Gran capacidad de almacenamiento
  • Alta disponibilidad
  • Alta escalabilidad
  • bajo costo

Comparación de bases de datos relacionales y NoSQL

Existen principalmente las siguientes diferencias

Comparado NoSQL Base de datos relacional
Base de datos común HBase 、 MongoDB 、 Redis Oracle, DB2, MySQL
Formato de almacenamiento Documentos, pares clave-valor, estructura de gráficos Formato de tabla, filas y columnas
Especificación de almacenamiento Fomentar la redundancia Normativo, evita duplicaciones
Expansión de almacenamiento Escalar, distribuir Expansión vertical (expansión horizontal limitada)
modo de consulta Lenguaje de consulta estructurado SQL Consulta no estructurada
asuntos No es compatible con la coherencia de las transacciones. Asuntos de apoyo
actuación Alto rendimiento de lectura y escritura Rendimiento deficiente de lectura y escritura
costo Simple y fácil de implementar, de código abierto, de bajo costo Alto costo

1.3 Características de NoSQL

  • Consistencia final

  • La aplicación ha aumentado las responsabilidades de mantener la coherencia y manejar las transacciones.

  • Almacenamiento de datos redundante

  • NoSQL! = Big data

    • Los productos NoSQL ayudan a resolver problemas de almacenamiento de big data
    • Big data incluye más que solo problemas de almacenamiento de datos
      • Hadoop
      • Kafka
      • Chispa, etc.

1.4 Conceptos básicos de NoSQL

  • Tres piedras angulares
    • CAP, BASE, consistencia final
  • Indexación (índice), Consulta (consulta)
  • Mapa reducido
  • Fragmentación
  1. Teoría de la PAC
  • La base de datos admite hasta 2 de 3
    • Consistencia
    • Disponibilidad
    • Tolerancia de partición (tolerancia a fallos de partición)
  • NoSQL no garantiza "ACID"
  • Proporcionar "consistencia eventual"

imagen-20200924163738973

  1. BASE
  • Básicamente disponible (básicamente disponible)
    • Asegúrese de que el núcleo esté disponible
  • Estado blando
    • El estado puede estar desincronizado por un tiempo
  • Consistencia eventual (consistencia eventual)
    • Después de un cierto período de tiempo, los datos finalmente pueden alcanzar un estado consistente
  • La idea central es que incluso si no se puede lograr una gran consistencia, la aplicación puede elegir una forma adecuada para lograr la consistencia final.
  1. Consistencia final
  • El resultado final es consistente, no siempre consistente
  • Los datos como el saldo de la cuenta y el inventario deben ser muy consistentes
  • La información como el catálogo no requiere una gran coherencia
    • Consistencia causal (consistencia causal)
    • Consistencia de lectura-sus-escrituras
    • Consistencia de la sesión

Índice y consulta

  • Indexación (Indexación)
    La mayoría de NoSQL se indexa por clave.
    Parte de NoSQL permite que el índice secundario
    HBase use HDFS,
    escritura por lotes de solo anexión Registrado
    para recrear y ordenar archivos
  • La consulta (consulta)
    no tiene un lenguaje de consulta especial, generalmente usa un lenguaje de scripting para la consulta,
    algunos comienzan a admitir consultas SQL,
    algunos pueden usar la consulta de código MapReduce

MapReduce 、 Fragmentación

  • MapReduce
    no es MapReduce de Hadoop, y el concepto está relacionado
    con el procesamiento y la consulta de datos
  • Fragmentación (fragmentación)
    un modo de partición que
    puede replicar fragmentos, lo cual
    es bueno para la recuperación ante desastres

1.5 clasificación NoSQL

Principalmente dividido en las siguientes cuatro categorías

clasificación Por ejemplo Escenarios de aplicación típicos
Base de datos del almacén de clave-valor (clave-valor) Redis, MemcacheDB, Voldemort Almacenamiento en caché de contenido, etc.
Base de datos de almacén de columnas (WIDE COLUMN STORE) Cassandra, HBase Responder a los datos masivos del almacenamiento distribuido
Base de datos de documentos (ALMACENAMIENTO DE DOCUMENTOS) CouchDB, MongoDB Aplicación web (puede considerarse una versión mejorada de la base de datos de valores clave)
GRÁFICO DB Neo4J, InfoGrid, Gráfico infinito Redes sociales, sistemas de recomendación, etc., enfocándose en construir un gráfico de relaciones

Base de datos del almacén de valores-clave (valor-clave)

imagen-20200924164747438

Base de datos del almacén de columnas (almacén de columnas amplias)

imagen-20200924164759220

Tienda de documentos

imagen-20200924164819333

Bases de datos de gráficos

imagen-20200924164834330

1.6 La relación entre NoSQL, BI y big data

  • BI (Business Intelligence): Business Intelligence
    Es un conjunto completo de soluciones.
    Las aplicaciones de BI involucran modelos, que dependen del modelo.
    BI principalmente soporta SQL estándar, y el soporte NoSQL es más débil que las bases de datos relacionales.
  • NoSQL tiene una alta correlación con Big Data.
    Generalmente, las bases de datos de almacenamiento de columnas se utilizan en escenarios de Big Data,
    como HBase y Hadoop.

2. Introducción a HBase

2.1 Descripción general de HBase

  • HBase es una base de datos NoSQL líder. Es
    una base de datos de almacenamiento orientada a columnas. Es
    un mapa hash distribuido
    basado en el documento Google Big Table.
    Utiliza HDFS como almacenamiento y utiliza su confiabilidad.
  • Funciones de HBase
    Velocidad rápida de acceso a datos, el tiempo de respuesta es de aproximadamente 2-20 milisegundos
    Admite lectura y escritura aleatoria
    , escalabilidad de cada nodo 20k ~ 100k + ops / s , se puede expandir a más de 20,000 nodos

2.2 Historia de desarrollo de HBase

hora evento
año 2006 Google publicó un artículo sobre Big Table
2007 La primera versión de HBase y Hadoop 0.15.0 se publican juntas
Año 2008 HBase se convierte en un subproyecto de Hadoop
año 2010 HBase se convierte en el principal proyecto de Apache
año 2011 Cloudera lanza CDH3 basado en HBase0.90.1
2012 HBase lanzó la versión 0.94
2013-2014 HBase ha lanzado la versión 0.96 / versión 0.98
2015-2016 HBase ha lanzado la versión 1.0, la versión 1.1 y la versión 1.2.4
2017 HBase lanzó la versión 1.3
2018 HBase lanzó la versión 1.4 y la versión 2.0

2.3 grupos de usuarios de HBase

imagen-20200924165725077

2.4 Escenarios de aplicación de HBase

  • Escenario de aplicación-1

Datos incrementales de series de tiempo

Escritura de alta capacidad y alta velocidad

imagen-20200924165817407

  • Escenario de aplicación-2

Intercambio de información-mensajería

Lectura y escritura de alta capacidad y alta velocidad

imagen-20200924165843295

  • Escenario de aplicación-3

Servicio de contenido-Aplicación de backend web

Lectura y escritura de alta capacidad y alta velocidad

imagen-20200924165909477

2.5 Ecosistema Apache HBase

Tecnología del ecosistema HBase
Lily - CRM
OpenTSDB basado en HBase - Gestión de datos de series temporales orientada a HBase
Kylin - OLAP
Phoenix
en HBase - Operación SQL Herramienta HBase Splice Machine - OLTP basado en HBase
Apache Tephra - Soporte de transacciones HBase
TiDB - Distributed SQL DB
Apache Gestión de transacciones Omid-Optimize
Servidor de línea de tiempo de la aplicación Yarn v.2 Migrar a HBase El
almacenamiento de metadatos de Hive se puede migrar a HBase
Ambari Metrics Server utilizará HBase para el almacenamiento de datos

Arquitectura 2.6HBase

1. Arquitectura física

HBase adopta la arquitectura maestro / esclavo

imagen-20200924170008602

  • La función
    de HMaster es el nodo maestro del clúster HBase, que se puede configurar con múltiples nodos para lograr la
    administración y distribución de HA . La región
    es responsable del equilibrio de carga de los RegionServers.
    Encuentra los RegionServers que fallaron y redistribuye las regiones en ellos.

  • RegionServer

    RegionServer es responsable de la gestión y el mantenimiento de Region.
    Un RegionServer contiene un WAL, un BlockCache (caché de lectura) y varias regiones.
    Una región contiene varias áreas de almacenamiento y cada área de almacenamiento corresponde a una familia de columnas.
    Un área de almacenamiento se compone de múltiples StoreFiles y MemStores.
    Un StoreFile corresponde a Un HFile y una familia de columnas
    HFile y WAL se almacenan como archivos de secuencia en HDFS, el
    cliente interactúa con RegionServer

imagen-20200924170110410

  • Región 和 Tabla

imagen-20200924170132008

2. Fila de arquitectura lógica

  • Rowkey (clave de fila) es única y ordenada
  • El esquema puede definir cuándo insertar registros
  • Cada fila puede definir su propia columna, incluso si no se utilizan otras filas
    • Las columnas relacionadas se definen como familias de columnas
  • Mantenga múltiples versiones de Row con marcas de tiempo únicas
    • El tipo de valor puede ser diferente en diferentes versiones
  • Todos los datos de HBase se almacenan en bytes

imagen-20200924170259209

2.7 Gestión de datos HBase

  • Directorio de gestión de datos
    • Tabla de catálogo del sistema hbase: meta
      • Almacenar metadatos, etc.
    • Archivos en el directorio HDFS
    • Instancia de región en servidores
  • Datos HBase en HDFS
    • Se puede reparar a través de un archivo HDFS
    • Ruta de reparación
      • RegionServer-> Tabla-> Región-> RowKey-> 列 族

imagen-20200924170349335

Características de la arquitectura 2.8HBase

  • Consistencia fuerte
  • Expansión automática
    • Se divide automáticamente cuando la región se vuelve grande
    • Use HDFS para expandir datos y administrar el espacio
  • Recuperación de escritura
    • 使用 WAL (registro de escritura anticipada)
  • Integración con Hadoop

Supongo que te gusta

Origin blog.csdn.net/zmzdmx/article/details/108778691
Recomendado
Clasificación