Visão geral da arquitetura de armazenamento HBase



A arquitetura do HBase Storage compreende vários componentes. Vamos examinar as funções desses componentes e saber como os dados estão sendo gravados.

Apache HBase é um banco de dados não relacional, distribuído e de código aberto modelado de acordo com o Bigtable do Google e escrito em Java. Ele fornece recursos semelhantes ao Bigtable sobre Hadoop e HDFS (Hadoop Distributed Filesystem), ou seja, fornece uma maneira tolerante a falhas de armazenar grandes quantidades de dados esparsos, que são comuns em muitos casos de uso de big data. O HBase é usado para acesso de leitura / gravação em tempo real ao Big Data.





A arquitetura do HBase Storage compreende vários componentes. Vamos dar uma olhada nas funções desses componentes e saber como os dados estão sendo gravados.

HFiles:



HFiles forma o baixo nível da arquitetura do HBase. HFiles são arquivos de armazenamento criados para armazenar os dados do HBase de forma rápida e eficiente.

HMaster:

sobrecarga de método vs substituição de método

O HMaster é responsável por atribuir as regiões a cada HRegionServer quando o HBase é iniciado. É responsável por gerenciar tudo relacionado a linhas, tabelas e suas atividades de coordenação. O Hmaster também possui os detalhes dos metadados.



Componentes de HBase:

O HBase tem os seguintes componentes:

  • Tabela - Inclui regiões
  • Região - intervalo de linhas armazenadas juntas
  • Servidores de região - atende uma ou mais regiões
  • Servidor Mestre - Daemon é responsável por gerenciar o cluster HBase

O HBase armazena dados diretamente no HDFS e depende muito da alta disponibilidade e tolerância a falhas do HDFS.

Arquitetura de armazenamento HBase:

Arquitetura de armazenamento HBase

O fluxo geral é que um cliente contate o Zookeeper primeiro para encontrar uma chave de linha específica. Ele faz isso recuperando o nome do servidor do Zookeeper. Com essas informações, ele pode agora consultar esse servidor para obter o servidor que contém a metatabela. Ambos os detalhes são armazenados em cache e pesquisados ​​apenas uma vez. Por último, ele pode consultar o metaservidor e recuperar o servidor que possui a linha que o cliente está procurando.

Depois de saber em que região a linha reside, ele também armazena em cache essas informações e contata o HRegionServer diretamente. Assim, com o tempo, o cliente tem informações completas de onde obter as linhas sem precisar consultar o metasservidor novamente. Quando HRegion é aberto, ele configura uma instância Store para cada HColumnFamily para cada tabela. Os dados são gravados quando o cliente emite uma solicitação para o HRegionServer que fornece os detalhes para a instância HRegion correspondente. A primeira etapa é que temos que decidir se os dados devem ser primeiro gravados no ‘Write-Ahead-Log’ (WAL) representado pela classe HLog. A decisão é baseada na bandeira definida pelo cliente.
Depois que os dados são gravados no WAL, eles são colocados no MemStore. Ao mesmo tempo, o Memstore é verificado se está cheio e, nesse caso, é solicitada uma descarga no disco. Em seguida, os dados são gravados no HFile.

Tem alguma questão para nós? Mencione-os na seção de comentários e entraremos em contato com você.

Postagens Relacionadas

Insights sobre arquitetura HBase