Introdução básica do HBase (1)

1. Introdução ao NoSQL

1.1 O que é NoSQL

NoSQL: não apenas SQL, banco de dados não relacional

NoSQL é um termo geral

  • Refere-se a bancos de dados que não seguem o modelo RDBMS tradicional
  • Os dados são não relacionais e não usam SQL como a linguagem de consulta principal
  • Resolva problemas de escalabilidade e disponibilidade do banco de dados
  • Não aborda questões de atomicidade ou consistência

image-20200924163336133

1.2 Por que usar NoSQL

Com o desenvolvimento da Internet, os bancos de dados relacionais tradicionais têm gargalos

  • Leitura e escrita simultâneas altas
  • Alta capacidade de armazenamento
  • Alta disponibilidade
  • Alta escalabilidade
  • baixo custo

Comparação de NoSQL e bancos de dados relacionais

Existem principalmente as seguintes diferenças

Comparado NoSQL Banco de Dados Relacional
Banco de dados comum HBase 、 MongoDB 、 Redis Oracle 、 DB2 、 MySQL
Formato de armazenamento Documentos, pares de valores-chave, estrutura gráfica Formato da tabela, linhas e colunas
Especificação de armazenamento Incentive a redundância Normativo, evite duplicação
Expansão de armazenamento Expansão, distribuído Expansão vertical (expansão horizontal limitada)
modo de inquérito Linguagem de consulta estruturada SQL Consulta não estruturada
romances Não suporta consistência de transação Assuntos de suporte
desempenho Alto desempenho de leitura e gravação Baixo desempenho de leitura e gravação
custo Simples e fácil de implantar, código aberto, baixo custo alto custo

1.3 Recursos do NoSQL

  • Consistência final

  • O aplicativo aumentou as responsabilidades de manter a consistência e lidar com as transações

  • Armazenamento de dados redundante

  • NoSQL! = Big data

    • Os produtos NoSQL são para ajudar a resolver problemas de armazenamento de big data
    • Big data inclui mais do que apenas problemas de armazenamento de dados
      • Hadoop
      • Kafka
      • Spark, etc

1.4 Conceitos básicos de NoSQL

  • Três pilares
    • CAP, BASE, consistência final
  • Indexação (índice), consulta (consulta)
  • MapReduce
  • Sharding
  1. Teoria CAP
  • O banco de dados suporta até 2 de 3
    • Consistência
    • Disponibilidade
    • Tolerância de partição (tolerância a falhas de partição)
  • NoSQL não garante "ACID"
  • Fornece "consistência eventual"

image-20200924163738973

  1. BASE
  • Basicamente disponível (basicamente disponível)
    • Certifique-se de que o núcleo está disponível
  • Soft-state
    • O estado pode ficar fora de sincronia por um tempo
  • Consistência eventual (consistência eventual)
    • Após um certo período de tempo, os dados podem finalmente atingir um estado consistente
  • A ideia central é que mesmo que a consistência forte não possa ser alcançada, o aplicativo pode escolher uma maneira adequada de atingir a consistência final
  1. Consistência final
  • O resultado final é consistente, nem sempre consistente
  • Dados como saldo da conta e estoque devem ser fortemente consistentes
  • Informações como catálogo não exigem consistência forte
    • Consistência causal (consistência causal)
    • Consistência de ler suas gravações
    • Consistência da sessão

Índice e consulta

  • Indexação (Indexação)
    A maior parte do NoSQL é indexada por chave.
    Parte do NoSQL permite que o índice secundário
    HBase use HDFS, anexar somente
    gravação em lote Registrado
    para recriar e classificar arquivos
  • Query (query)
    não tem uma linguagem de consulta especial, geralmente usa linguagem de script para consulta,
    alguns começam a suportar consulta SQL,
    alguns podem usar consulta de código MapReduce

MapReduce 、 Fragmentação

  • MapReduce
    não é o MapReduce do Hadoop, e o conceito está relacionado
    ao processamento de dados e consulta
  • Sharding (fragmentação)
    um modo de particionamento que
    pode replicar fragmentos, o que
    é bom para recuperação de desastres

1.5 Classificação NoSQL

Principalmente dividido nas seguintes quatro categorias

classificação Por exemplo Cenários de aplicação típicos
Banco de dados de armazenamento de valor-chave (valor-chave) Redis, MemcacheDB, Voldemort Cache de conteúdo, etc.
Banco de dados de armazenamento de coluna (WIDE COLUMN STORE) Cassandra, HBase Responda aos dados massivos de armazenamento distribuído
Banco de dados de documentos (DOCUMENT STORE) CouchDB, MongoDB Aplicativo da Web (pode ser considerado uma versão atualizada do banco de dados de valores-chave)
GRAPH DB Neo4J, InfoGrid, Infinite Graph Redes sociais, sistemas de recomendação, etc., com foco na construção de um gráfico de relacionamento

Banco de dados de armazenamento de valor-chave (valor-chave)

image-20200924164747438

Banco de dados de armazenamento de colunas (amplo armazenamento de colunas)

image-20200924164759220

Loja de Documentos

image-20200924164819333

Bancos de dados gráficos

image-20200924164834330

1.6 A relação entre NoSQL, BI e big data

  • BI (Business Intelligence): Business Intelligence
    É um conjunto completo de soluções.
    As aplicações de BI envolvem modelos que dependem do modelo. O
    BI suporta principalmente SQL padrão, e o suporte NoSQL é mais fraco do que os bancos de dados relacionais.
  • NoSQL tem uma alta correlação com big data.
    Geralmente, os bancos de dados de armazenamento em coluna são usados ​​em cenários de big data,
    como HBase e Hadoop.

2. Introdução ao HBase

2.1 Visão geral do HBase

  • HBase é um banco de dados NoSQL líder. É
    um banco de dados de armazenamento orientado a colunas. É
    um mapa de hash distribuído com
    base no documento Google Big Table. Ele
    usa HDFS como armazenamento e usa sua confiabilidade.
  • Recursos do HBase:
    Velocidade rápida de acesso a dados, tempo de resposta de cerca de 2 a 20 milissegundos
    Suporte de leitura e gravação aleatória
    , escalabilidade de cada nó 20k ~ 100k + ops / s , pode ser expandido para mais de 20.000 nós

2.2 Histórico de desenvolvimento de HBase

Tempo evento
ano 2006 O Google publicou um artigo sobre Big Table
2007 A primeira versão do HBase e Hadoop 0.15.0 são lançadas juntas
Ano 2008 HBase torna-se um subprojeto do Hadoop
ano 2010 HBase torna-se o principal projeto Apache
ano 2011 Cloudera lança CDH3 baseado em HBase0.90.1
2012 HBase lançou a versão 0.94
2013-2014 HBase lançou versão 0.96 / versão 0.98
2015-2016 HBase lançou a versão 1.0, versão 1.1 e versão 1.2.4
2017 HBase lançou a versão 1.3
2018 HBase lançou a versão 1.4 e a versão 2.0

2.3 Grupos de usuários HBase

image-20200924165725077

2.4 Cenários de aplicação HBase

  • Cenário de aplicação-1

Dados incrementais de série temporal

Gravação de alta capacidade e alta velocidade

image-20200924165817407

  • Cenário de aplicação-2

Troca de informações - mensagens

Leitura e escrita de alta capacidade e alta velocidade

image-20200924165843295

  • Cenário de aplicação-3

Aplicativo de back-end do serviço de conteúdo da web

Leitura e escrita de alta capacidade e alta velocidade

image-20200924165909477

2.5 Ecossistema Apache HBase

HBase Ecosystem Technology
Lily - CRM
OpenTSDB baseado em HBase - Gerenciamento de dados de séries temporais orientado a HBase
Kylin - OLAP
Phoenix
em HBase - operação SQL Ferramenta HBase Splice Machine - OLTP baseado em HBase
Apache Tephra - Suporte a transações HBase
TiDB - SQL DB
Apache Gerenciamento de transações do Omid-Optimize
Servidor de linha do tempo do aplicativo Yarn v.2 Migrar para o
armazenamento de metadados HBase Hive pode ser migrado para o HBase
Ambari Metrics Server usará o HBase para armazenamento de dados

Arquitetura 2.6HBase

1. Arquitetura física

HBase adota arquitetura Master / Slave

imagem-20200924170008602

  • A função
    do HMaster é o nó mestre do cluster HBase, que pode ser configurado com vários nós para obter
    gerenciamento e distribuição de HA . A região
    é responsável pelo balanceamento de carga dos RegionServers.
    Encontra os RegionServers com falha e redistribui as regiões neles.

  • RegionServer

    RegionServer é responsável pelo gerenciamento e manutenção da região.
    Um RegionServer contém um WAL, um BlockCache (cache de leitura) e várias regiões.
    Uma região contém várias áreas de armazenamento, e cada área de armazenamento corresponde a um grupo de colunas.
    Uma área de armazenamento é composta por vários StoreFiles e MemStores.
    Um StoreFile corresponde a Um HFile e uma família de colunas
    HFile e WAL são armazenados como arquivos de sequência no HDFS
    Client interage com RegionServer

image-20200924170110410

  • Região 和 Tabela

image-20200924170132008

2. Linha de Arquitetura Lógica

  • Rowkey (chave de linha) é única e classificada
  • O esquema pode definir quando inserir registros
  • Cada linha pode definir sua própria coluna, mesmo se outras linhas não forem usadas
    • As colunas relacionadas são definidas como famílias de colunas
  • Manter várias versões de linha com carimbos de data / hora exclusivos
    • O tipo de valor pode ser diferente em diferentes versões
  • Os dados do HBase são todos armazenados em bytes

image-20200924170259209

2.7 Gerenciamento de dados HBase

  • Data Management Directory
    • Tabela de catálogo do sistema hbase: meta
      • Armazenar metadados, etc.
    • Arquivos no diretório HDFS
    • Instância de região em servidores
  • Dados HBase em HDFS
    • Pode ser reparado por meio do arquivo HDFS
    • Caminho de reparo
      • RegionServer-> Table-> Region-> RowKey-> 列 族

image-20200924170349335

Recursos da arquitetura 2.8HBase

  • Consistência forte
  • Expansão automática
    • Dividir automaticamente quando a região se torna grande
    • Use HDFS para expandir dados e gerenciar espaço
  • Recuperação de gravação
    • 使用 WAL (registro de gravação antecipada)
  • Integração com Hadoop

Acho que você gosta

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