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.

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.
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.
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.
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.



