HBase Archiarquitetura: casos de uso, componentes e modelo de dados

โšก Resumo Inteligente

A arquitetura do HBase รฉ construรญda a partir de quatro componentes coordenadores โ€” HMaster, Region Servers, ZooKeeper e HDFS โ€” que armazenam dados em um modelo orientado a colunas, dividem-nos em regiรตes e oferecem leituras e gravaรงรตes aleatรณrias de baixa latรชncia.

  • ๐Ÿงญ HMaster: Atribui regiรตes aos Servidores de Regiรฃo, gerencia o balanceamento de carga e o failover, e administra as alteraรงรตes de esquema e metadados.
  • ๐Ÿ—„๏ธ Servidores regionais: Atenda ร s solicitaรงรตes de leitura e gravaรงรฃo do cliente, hospede regiรตes e divida regiรตes automaticamente ร  medida que os dados aumentam.
  • ๐Ÿงฑ Regiรตes e lojas: Cada regiรฃo mantรฉm um armazenamento por famรญlia de colunas, construรญdo a partir de um MemStore na memรณria e HFiles no disco.
  • ๐Ÿ”— Funcionรกrio do zoolรณgico: Coordenadas do cluster, tracfalhas do servidor ks e armazena a configuraรงรฃo de quorum que os clientes usam para se conectar.
  • ๐Ÿงฎ Modelo de dados: As tabelas agrupam famรญlias de colunas e linhas, e uma chave de linha atua como chave primรกria para cada acesso.
  • โšก HBase vs HDFS: O HBase adiciona leituras e gravaรงรตes aleatรณrias de baixa latรชncia ao armazenamento em lote do HDFS.

Arquitetura do HBase com seus componentes, modelo de dados e fluxo de dados de leitura e gravaรงรฃo.

O Apache HBase รฉ um banco de dados NoSQL distribuรญdo e orientado a colunas que funciona sobre... Hadoop e o Hadoop Distributed File System (HDFS). Sua arquitetura combina um mestre coordenador, servidores de regiรฃo e o ZooKeeper para armazenar tabelas muito grandes e atender a leituras e gravaรงรตes aleatรณrias rรกpidas.

HBase Archiarquitetura e seus componentes importantes

A arquitetura do HBase possui os seguintes componentes principais:

  • H Master
  • ServidorHRegion
  • HRegiรตes
  • Funcionรกrio do zoolรณgico
  • HDFS

A seguir, encontra-se uma arquitetura detalhada do HBase com seus componentes, conforme mostrado no diagrama.

Diagrama da arquitetura do HBase mostrando o HMaster, os Region Servers, o ZooKeeper e o HDFS.

H Master

O HMaster no HBase รฉ a implementaรงรฃo de um servidor Master na arquitetura do HBase. Ele atua como um agente de monitoramento para todas as instรขncias do Region Server presentes no cluster e serve como interface para todas as alteraรงรตes de metadados. Em um ambiente de cluster distribuรญdo, o Master รฉ executado no NameNode. O Master executa vรกrias threads em segundo plano.

A seguir, apresentamos algumas funรงรตes importantes desempenhadas pelo HMaster no HBase:

  • Desempenha um papel vital em termos de desempenho e manutenรงรฃo de nรณs no cluster.
  • HMaster fornece desempenho administrativo e distribui serviรงos para servidores de diferentes regiรตes.
  • HMaster atribui regiรตes a servidores de regiรฃo.
  • O HMaster controla o balanceamento de carga e o failover para lidar com a carga nos nรณs presentes no cluster.
  • Quando um cliente deseja alterar qualquer esquema ou operaรงรฃo de metadados, o HMaster assume a responsabilidade por essas operaรงรตes.

Alguns dos mรฉtodos expostos pela interface HMaster sรฃo principalmente mรฉtodos orientados a metadados:

  • Tabela (createTable, removeTable, ativar, desativar)
  • ColumnFamily (adicionar coluna, modificar coluna)
  • Regiรฃo (mover, atribuir)

O cliente se comunica de forma bidirecional com o HMaster e o ZooKeeper. Para operaรงรตes de leitura e gravaรงรฃo, ele contata diretamente os servidores HRegion. O HMaster atribui regiรตes aos servidores de regiรฃo e, por sua vez, verifica o estado de integridade dos servidores de regiรฃo.

Em toda a arquitetura, temos vรกrios servidores regionais. Um HLog estรก presente nos servidores regionais, que armazena todos os arquivos de log.

Servidores de regiรฃo HBase

Quando um servidor de regiรฃo HBase recebe solicitaรงรตes de leitura e gravaรงรฃo do cliente, ele atribui a solicitaรงรฃo a uma regiรฃo especรญfica, onde a famรญlia de colunas reside. O cliente pode contatar diretamente os servidores HRegion; nรฃo รฉ necessรกria a permissรฃo obrigatรณria de HMaster para que o cliente se comunique com eles. O cliente sรณ precisa da ajuda do HMaster quando operaรงรตes relacionadas a metadados e alteraรงรตes de esquema sรฃo necessรกrias.

O HRegionServer รฉ a implementaรงรฃo do Servidor de Regiรฃo. Ele รฉ responsรกvel por servir e gerenciar regiรตes, ou seja, os dados presentes em um cluster distribuรญdo. Os servidores de regiรฃo sรฃo executados nos Nรณs de Dados presentes no cluster Hadoop.

O HMaster pode entrar em contato com vรกrios servidores HRegion e executa as seguintes funรงรตes:

  • Hospedagem e gerenciamento de regiรตes
  • Dividindo regiรตes automaticamente
  • Tratamento de solicitaรงรตes de leitura e gravaรงรฃo
  • Comunicando-se diretamente com o cliente

Regiรตes HBase

As HRegions sรฃo os elementos bรกsicos de construรงรฃo de um cluster HBase. Elas consistem na distribuiรงรฃo de tabelas e sรฃo compostas por famรญlias de colunas. Uma regiรฃo contรฉm mรบltiplos armazenamentos, um para cada famรญlia de colunas. Ela consiste principalmente em dois componentes: o MemStore e o HFile.

Funcionรกrio do zoolรณgico

HBase Funcionรกrio do zoolรณgico O ZooKeeper รฉ um servidor de monitoramento centralizado que mantรฉm informaรงรตes de configuraรงรฃo e fornece sincronizaรงรฃo distribuรญda. A sincronizaรงรฃo distribuรญda coordena os aplicativos distribuรญdos em execuรงรฃo no cluster, fornecendo serviรงos de coordenaรงรฃo entre os nรณs. Se o cliente deseja se comunicar com regiรตes, ele precisa primeiro contatar o ZooKeeper.

ร‰ um projeto de cรณdigo aberto que oferece muitos serviรงos importantes.

Serviรงos oferecidos pelo ZooKeeper:

  • Mantรฉm informaรงรตes de configuraรงรฃo
  • Fornece sincronizaรงรฃo distribuรญda
  • Estabelece comunicaรงรฃo do cliente com os servidores da regiรฃo.
  • Fornece nรณs efรชmeros que representam servidores de diferentes regiรตes.
  • Permite que o servidor mestre utilize esses nรณs efรชmeros para descobrir servidores disponรญveis no cluster.
  • Tracfalha do servidor ks e partiรงรตes de rede

Os nรณs mestre e escravo do HBase (servidores de regiรฃo) se registram no ZooKeeper. O cliente precisa de acesso ร  configuraรงรฃo de quorum do ZooKeeper (ZK) para se conectar com os servidores mestre e de regiรฃo.

Durante uma falha de nรณs presentes no cluster HBase, o quorum do ZooKeeper dispara mensagens de erro e inicia o reparo dos nรณs com falha.

HDFS

HDFS รฉ o Sistema de Arquivos Distribuรญdos do Hadoop. Sistema de ArquivoComo o nome indica, ele fornece um ambiente distribuรญdo para armazenamento e รฉ um sistema de arquivos projetado para funcionar em hardware comum. Ele armazena cada arquivo em mรบltiplos blocos e, para manter a tolerรขncia a falhas, os blocos sรฃo replicados em todo o cluster Hadoop.

O HDFS oferece um alto grau de tolerรขncia a falhas e funciona em hardware de baixo custo. Ao adicionar nรณs ao cluster e realizar processamento e armazenamento usando hardware de baixo custo, o cliente obtรฉm melhores resultados em comparaรงรฃo com a configuraรงรฃo existente.

Neste sistema, os dados armazenados em cada bloco sรฃo replicados em 3 nรณs, portanto, se algum nรณ falhar, nรฃo haverรก perda de dados; ele possui um mecanismo adequado de backup e recuperaรงรฃo.

O HDFS entra em contato com os componentes do HBase e armazena uma grande quantidade de dados de forma distribuรญda.

Modelo de dados HBase

O modelo de dados do HBase รฉ um conjunto de componentes que consiste em tabelas, linhas, famรญlias de colunas, cรฉlulas, colunas e versรตes. As tabelas do HBase contรชm famรญlias de colunas e linhas, com elementos definidos como chaves primรกrias. Uma coluna na tabela do modelo de dados do HBase representa um atributo dos objetos.

O modelo de dados do HBase consiste nos seguintes elementos:

  • Conjunto de mesas
  • Cada tabela com famรญlias de colunas e linhas
  • Cada tabela deve ter um elemento definido como chave primรกria.
  • A chave da linha funciona como uma chave primรกria no HBase.
  • Qualquer acesso ร s tabelas do HBase utiliza essa chave primรกria.
  • Cada coluna presente no HBase denota um atributo correspondente a um objeto.

Casos de uso do HBase

A seguir, apresentamos exemplos de casos de uso do HBase com uma explicaรงรฃo detalhada da soluรงรฃo que o HBase oferece para diversos problemas tรฉcnicos.

Problema Declaraรงรฃo Soluรงรฃo
O setor de telecomunicaรงรตes enfrenta os seguintes desafios tรฉcnicos: armazenar bilhรตes de registros de detalhes de chamadas (CDR) gerados pelo domรญnio de telecomunicaรงรตes; fornecer acesso em tempo real aos registros de CDR e ร s informaรงรตes de faturamento dos clientes; e oferecer uma soluรงรฃo com boa relaรงรฃo custo-benefรญcio em comparaรงรฃo aos sistemas de banco de dados tradicionais. O HBase รฉ usado para armazenar bilhรตes de linhas de registros detalhados de chamadas. Se 20 TB de dados forem adicionados por mรชs ao banco de dados RDBMS existente, o desempenho serรก prejudicado. Para lidar com uma grande quantidade de dados neste caso de uso, o HBase รฉ a melhor soluรงรฃo. O HBase realiza consultas rรกpidas e exibe registros.
O setor bancรกrio gera milhรตes de registros diariamente. Alรฉm disso, o setor bancรกrio tambรฉm precisa de uma soluรงรฃo analรญtica capaz de detectar fraudes em transaรงรตes financeiras. Para armazenar, processar e atualizar grandes volumes de dados e realizar anรกlises, uma soluรงรฃo ideal รฉ o HBase integrado a diversos componentes do ecossistema Hadoop.

Alรฉm disso, o HBase pode ser usado:

  • Sempre que houver necessidade de aplicaรงรตes que exijam muita escrita de dados.
  • Para realizar anรกlises de logs online e gerar relatรณrios de conformidade.

Mecanismo de armazenamento em HBase

O HBase รฉ um banco de dados orientado a colunas, e os dados sรฃo armazenados em tabelas. As tabelas sรฃo classificadas por RowId. Como mostrado abaixo, o HBase possui um RowId, que รฉ o conjunto de vรกrias famรญlias de colunas presentes na tabela.

As famรญlias de colunas presentes no esquema sรฃo pares chave-valor. Observando em detalhes, cada famรญlia de colunas possui mรบltiplas colunas. Os valores das colunas sรฃo armazenados na memรณria do disco. Cada cรฉlula da tabela possui seus prรณprios metadados, como um carimbo de data/hora e outras informaรงรตes.

O layout de armazenamento orientado a colunas, com chaves de linha, famรญlias de colunas e cรฉlulas, รฉ mostrado abaixo.

Mecanismo de armazenamento do HBase mostrando a chave da linha, famรญlias de colunas, colunas e cรฉlulas.

A seguir, apresentamos os principais termos que representam um esquema de tabela HBase:

  • Tabela: Conjunto de linhas presentes.
  • Linha: Conjunto de famรญlias de colunas.
  • Famรญlia de colunas: Conjunto de colunas.
  • Coluna: Conjunto de pares chave-valor.
  • Espaรงo de nomes: Grupo lรณgicoping de mesas.
  • Cรฉlula: Uma tupla {linha, coluna, versรฃo} que especifica exatamente uma definiรงรฃo de cรฉlula no HBase.

Armazenamentos orientados a colunas versus armazenamentos orientados a linhas

Os armazenamentos orientados a colunas e orientados a linhas diferem em seu mecanismo de armazenamento. Como todos sabemos, os modelos relacionais tradicionais armazenam dados em um formato baseado em linhas, em termos de linhas de dados. Os armazenamentos orientados a colunas armazenam tabelas de dados em termos de colunas e famรญlias de colunas.

A tabela a seguir apresenta algumas diferenรงas importantes entre esses dois tipos de armazenamento.

Banco de dados orientado a colunas Banco de dados orientado a linhas
Utilizado quando a situaรงรฃo envolve processamento e anรกlise, como o Processamento Analรญtico Online (OLAP) e suas aplicaรงรตes. O processamento de transaรงรตes online, como nos setores bancรกrio e financeiro, utiliza essa abordagem.
A quantidade de dados que pode ser armazenada neste modelo รฉ muito grande, em termos de petabytes. Ele foi projetado para um pequeno nรบmero de linhas e colunas.

Explicaรงรฃo de dados de leitura e gravaรงรฃo do HBase

As operaรงรตes de leitura e gravaรงรฃo do cliente para o HFile sรฃo mostradas no diagrama abaixo.

Fluxo de dados de leitura e gravaรงรฃo do HBase entre o cliente, o servidor de regiรฃo, o MemStore e o HFile.

Etapa 1) O cliente deseja gravar dados e, por sua vez, primeiro se comunica com o Servidor Regional e depois com as regiรตes.

Etapa 2) A regiรฃo contata o MemStore para armazenar os dados associados ร  famรญlia de colunas.

Etapa 3) Primeiro, os dados sรฃo armazenados no MemStore, onde sรฃo classificados, e em seguida gravados no HFile. O principal motivo para usar o MemStore รฉ armazenar dados em um sistema de arquivos distribuรญdo com base na chave da linha. O MemStore estรก localizado na memรณria principal do Region Server, enquanto os HFiles sรฃo gravados no HDFS.

Etapa 4) O cliente deseja ler dados das regiรตes.

Etapa 5) Por sua vez, o cliente pode ter acesso direto ao MemStore e solicitar dados.

Etapa 6) O cliente acessa o HFiles para obter os dados. Os dados sรฃo buscados e recuperados pelo cliente.

O MemStore armazena as modificaรงรตes feitas na memรณria. A hierarquia de objetos nas regiรตes do HBase, de cima para baixo, รฉ mostrada na tabela abaixo.

mesa Tabela HBase presente no cluster HBase
Regiรฃo HRegions para as tabelas apresentadas
Loja Armazena um por famรญlia de colunas para cada regiรฃo da tabela.
MemStore Um MemStore para cada repositรณrio em cada regiรฃo da tabela. Ele classifica os dados antes de gravรก-los nos HFiles. O desempenho de leitura e gravaรงรฃo aumenta devido ร  classificaรงรฃo.
Arquivo de armazenamento StoreFiles para cada loja para cada regiรฃo da tabela
Bloquear Blocos presentes dentro de StoreFiles

HBase versus HDFS

O HBase funciona sobre o HDFS e o Hadoop. Algumas diferenรงas importantes entre o HDFS e o HBase estรฃo relacionadas ร s operaรงรตes e ao processamento de dados.

HBase HDFS
Operaรงรตes de baixa latรชncia Operaรงรตes de alta latรชncia
Leituras e gravaรงรตes aleatรณrias Escreva uma vez, leia muitas vezes.
Acessado por comandos do shell, uma API de cliente em JavaREST, Avro ou Thrift Acessado principalmente atravรฉs do MapReduce (MR) empregos
Tanto o armazenamento quanto o processamento podem ser realizados. ร‰ destinado apenas a รกreas de armazenamento.

Algumas aplicaรงรตes industriais tรญpicas de TI utilizam operaรงรตes do HBase juntamente com o Hadoop. Essas aplicaรงรตes incluem operaรงรตes com dados de bolsas de valores e bancos online, onde o HBase รฉ a soluรงรฃo mais adequada. Assim que seu cluster estiver pronto, vocรช poderรก Ler e gravar dados no HBase or Instalar HBase em um nรณ novo.

Perguntas Frequentes

Sim. O HBase รฉ um banco de dados NoSQL distribuรญdo e orientado a colunas, modelado em Google O Bigtable รฉ construรญdo sobre o HDFS. Ele armazena dados esparsos em tabelas de famรญlias de colunas e nรฃo usa esquemas fixos ou junรงรตes SQL como um banco de dados relacional.

O WAL, tambรฉm chamado de HLog, registra cada gravaรงรฃo no Region Server antes que ela entre no MemStore. Ele รฉ armazenado no HDFS, portanto, se um Region Server falhar antes de uma gravaรงรฃo (flush), o HBase reproduz o WAL para recuperar as ediรงรตes nรฃo salvas.

A compactaรงรฃo mescla arquivos HFile para manter as leituras rรกpidas. A compactaรงรฃo menor combina vรกrios arquivos HFile adjacentes pequenos em um sรณ. A compactaรงรฃo maior reescreve todos os arquivos HFile de uma famรญlia de colunas em um รบnico arquivo e remove fisicamente as cรฉlulas excluรญdas e expiradas.

Ambos sรฃo bancos de dados NoSQL inspirados no Bigtable, mas o HBase roda no HDFS com um รบnico HMaster ativo e consistรชncia forte, enquanto Cassandra ร‰ um ambiente sem mestre, com replicaรงรฃo ajustรกvel e eventualmente consistente. O HBase รฉ adequado para anรกlises do Hadoop; Cassandra ternos sempre ligados escrevem.

Projete as chaves de linha de forma que as leituras e gravaรงรตes sejam distribuรญdas uniformemente entre as regiรตes. Evite chaves que aumentam monotonicamente, pois isso cria gargalos em um servidor de regiรฃo. Use salting, hashing ou inversรฃo de campos e mantenha as chaves curtas, pois elas se repetem em todas as cรฉlulas.

Uma regiรฃo se divide automaticamente quando seu armazenamento ultrapassa um limite de tamanho configurado. O Servidor de Regiรฃo a divide em duas regiรตes filhas na chave da linha intermediรกria, e o HMaster pode reatribuir uma delas a outro servidor para equilibrar a carga.

Ferramentas de IA e aprendizado de mรกquina analisam padrรตes de consulta e acesso para sugerir designs de chave de linha e famรญlia de colunas que evitam pontos de acesso crรญticos. Elas tambรฉm examinam mรฉtricas e registros do Region Server para sinalizar anomalias, como regiรตes desbalanceadas ou nรณs com falha, precocemente.

Sim. Travas deslizantes portรกteis Copiloto do GitHub rascunhos HBase Java Cรณdigo do cliente, comandos do shell e filtros de varredura a partir de um breve comentรกrio. RevVerifique se os nomes das tabelas, famรญlias de colunas e classes da API, como Connection e Table, estรฃo corretos antes de executรก-lo em um cluster real.

Resuma esta postagem com: