HBase Archiarquitetura: casos de uso, componentes e modelo de dados
HBase Archiarquitetura e seus componentes importantes
A arquitetura HBase consiste principalmente em quatro componentes
- H Master
- ServidorHRegion
- HRegiões
- Zookeeper
- HDFS
Abaixo está uma arquitetura detalhada do HBase com componentes:

H Master
H Master no HBase é a implementação de um servidor Master na arquitetura HBase. Ele atua como um agente de monitoramento para monitorar todas as instâncias do Region Server presentes no cluster e atua como uma interface para todas as alterações de metadados. Em um ambiente de cluster distribuído, o Master é executado em NameNode. Master executa vários threads em segundo plano.
A seguir estão 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.
- HMaster possui recursos como controle de balanceamento de carga e failover para lidar com a carga sobre os nós presentes no cluster.
- Quando um cliente deseja alterar qualquer esquema e alterar qualquer 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 bidirecionalmente com o HMaster e o ZooKeeper. Para operações de leitura e gravação, ele entra em contato direto com os servidores HRegion. O HMaster atribui regiões aos servidores regionais e, por sua vez, verifica o status de integridade dos servidores regionais.
Em toda a arquitetura, temos vários servidores regionais. Hlog presente nos servidores da região que irão armazenar todos os arquivos de log.
Servidores de região HBase
Quando o HBase Region Server recebe solicitações de gravação e leitura do cliente, ele atribui a solicitação a uma região específica, onde reside a família de colunas real. Porém, o cliente pode entrar em contato diretamente com os servidores HRegion, não há necessidade de permissão obrigatória do HMaster ao cliente quanto à comunicação com os servidores HRegion. O cliente requer ajuda do HMaster quando são necessárias operações relacionadas a metadados e alterações de esquema.
HRegionServer é a implementação do servidor de região. É responsável por atender e gerenciar regiões ou dados presentes em um cluster distribuído. Os servidores regionais são executados em nós de dados presentes no cluster Hadoop.
O HMaster pode entrar em contato com vários servidores HRegion e executar 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
HRegions são os elementos básicos de construção do cluster HBase que consiste na distribuição de tabelas e é composto por famílias de colunas. Ele contém vários armazenamentos, um para cada família de colunas. Consiste principalmente em dois componentes, que são Memstore e Hfile.
Funcionário do zoológico
HBase 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 visa acessar os aplicativos distribuídos em execução no cluster com a responsabilidade de fornecer serviços de coordenação entre os nós. Se o cliente quiser se comunicar com regiões, o cliente do servidor deverá primeiro abordar o ZooKeeper.
É um projeto de código aberto e fornece muitos serviços importantes.
Serviços prestados por Funcionário do zoológico
- Mantém informações de configuração
- Fornece sincronização distribuída
- Estabelecimento de comunicação do cliente com servidores da região
- Fornece nós efêmeros para os quais representam servidores de regiões diferentes
- Usabilidade de servidores mestres de nós efêmeros para descobrir servidores disponíveis no cluster
- Para rastrear falhas de servidor e partições de rede
Nós escravos mestre e HBase (servidores de região) registraram-se no ZooKeeper. O cliente precisa de acesso à configuração de quorum ZK(zookeeper) para se conectar aos servidores mestre e de região.
Durante uma falha de nós presentes no cluster HBase, o ZKquoram acionará mensagens de erro e começará a reparar os nós com falha.
HDFS
HDFS é um Hadoop distribuído Sistema de Arquivo, como 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 vários blocos e, para manter a tolerância a falhas, os blocos são replicados em um cluster Hadoop.
O HDFS oferece um alto grau de tolerância a falhas e funciona em hardware barato. Ao adicionar nós ao cluster e realizar processamento e armazenamento usando hardware barato, isso dará ao cliente melhores resultados em comparação com o existente.
Aqui, os dados armazenados em cada bloco são replicados em 3 nós, caso algum nó fique inativo não haverá perda de dados, ele terá um mecanismo adequado de recuperação de backup.
HDFS entra em contato com os componentes do HBase e armazena uma grande quantidade de dados de forma distribuída.
Modelo de dados HBase
Modelo de dados HBase é um conjunto de componentes que consiste em tabelas, linhas, famílias de colunas, células, colunas e versões. As tabelas HBase contêm famílias de colunas e linhas com elementos definidos como chaves primárias. Uma coluna na tabela do modelo de dados HBase representa atributos dos objetos.
O modelo de dados 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 de linha atua como uma chave primária no HBase.
- Qualquer acesso às tabelas HBase usa esta chave primária
- Cada coluna presente no HBase denota o atributo correspondente ao objeto
Casos de uso do HBase
A seguir estão exemplos de casos de uso do HBase com uma explicação detalhada da solução que ele fornece para vários problemas técnicos
Problema Declaração | Solução |
---|---|
Indústria de Telecom enfrenta os seguintes desafios técnicos
|
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. |
A Indústria bancária gera milhões de registros diariamente. Além disso, o setor bancário também precisa de uma solução analítica que possa detectar fraudes em transações monetárias. | Para armazenar, processar e atualizar grandes volumes de dados e realizar análises, uma solução ideal é – HBase integrado com vários componentes do ecossistema Hadoop. |
Além disso, o HBase pode ser usado
- Sempre que houver necessidade de escrever aplicações pesadas.
- Realizar análises de log on-line e gerar relatórios de conformidade.
Mecanismo de armazenamento em HBase
HBase é um banco de dados orientado a colunas e os dados são armazenados em tabelas. As tabelas são classificadas por RowId. Conforme mostrado abaixo, o HBase possui RowId, que é a coleção de vários famílias de colunas que estão presentes na tabela.
Os grupos de colunas presentes no esquema são pares de valores-chave. Se observarmos detalhadamente cada família de colunas com vários números de colunas. Os valores da coluna armazenados na memória do disco. Cada célula da tabela possui seus próprios metadados, como carimbo de data/hora e outras informações.
Chegando ao HBase, a seguir estão os termos-chave que representam o esquema da tabela
- mesa: Coleção de linhas presentes.
- Linha: Coleção de famílias de colunas.
- Família de colunas: Coleção de colunas.
- Coluna: Coleção de pares de valores-chave.
- Namespace: Agrupamento lógico de tabelas.
- Célula: uma tupla {linha, coluna, versão} 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 linhas diferem em seu mecanismo de armazenamento. Como todos sabemos, os modelos relacionais tradicionais armazenam dados em termos de formato baseado em linhas, como 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 fornece algumas diferenças importantes entre esses dois armazenamentos
Banco de dados orientado a colunas | Banco de dados orientado a linhas |
---|---|
Quando se trata de processos e análises, usamos essa abordagem. Como Processamento analítico online e são aplicativos. | Processo transacional on-line como os domínios bancário e financeiro utilizam esta abordagem. |
A quantidade de dados que podem ser armazenados 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 em Hfile podem ser mostradas no diagrama abaixo.
Passo 1) O cliente deseja gravar dados e, por sua vez, primeiro se comunica com o servidor de regiões e depois com as regiões
Passo 2) Regiões entrando em contato com o memstore para armazenamento associado à família de colunas
Passo 3) Primeiro os dados são armazenados no Memstore, onde os dados são classificados e depois são descarregados no HFile. O principal motivo para usar o Memstore é armazenar dados em um sistema de arquivos distribuído baseado em Row Key. O Memstore será colocado na memória principal do servidor regional enquanto os HFiles são gravados no HDFS.
Passo 4) O cliente deseja ler dados de regiões
Passo 5) Por sua vez, o Cliente pode ter acesso direto ao armazenamento Mem e pode solicitar dados.
Etapa 6) Cliente aborda HFiles para obter os dados. Os dados são buscados e recuperados pelo Cliente.
Memstore mantém modificações na memória do armazenamento. A hierarquia de objetos nas regiões HBase é mostrada de cima para baixo na tabela abaixo.
mesa | Tabela HBase presente no cluster HBase |
Região | HRegions para as tabelas apresentadas |
Store | Ele armazena por ColumnFamily para cada região da tabela |
Loja de memórias |
|
Arquivo de armazenamento | StoreFiles para cada loja para cada região da tabela |
Bloquear | Blocos presentes dentro de StoreFiles |
HBase versus HDFS
O HBase é executado em cima do HDFS e Hadoop. Algumas diferenças importantes entre HDFS e HBase são em termos de operações e 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, API do cliente em Java, REST, Avro ou Thrift | Acessado principalmente por meio de trabalhos MR (Map Reduce) |
Armazenamento e processo podem ser executados | É apenas para áreas de armazenamento |
Algumas aplicações industriais de TI típicas usam operações HBase junto com Hadoop. As aplicações incluem dados da bolsa de valores, operações de dados bancários on-line e processamento. Hbase é o método de solução mais adequado.
Resumo
- Componentes da arquitetura HBase: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
- HMaster em HBase é a implementação de um servidor Master na arquitetura HBase.
- Quando o HBase Region Server recebe solicitações de gravação e leitura do cliente, ele atribui a solicitação a uma região específica, onde reside a família de colunas real
- HRegions são os elementos básicos de construção do cluster HBase que consiste na distribuição de tabelas e é composto por famílias de colunas.
- HBase Zookeeper é um servidor de monitoramento centralizado que mantém informações de configuração e fornece sincronização distribuída.
- O HDFS oferece um alto grau de tolerância a falhas e funciona em hardware barato.
- Modelo de dados HBase é um conjunto de componentes que consiste em tabelas, linhas, famílias de colunas, células, colunas e versões.
- Os armazenamentos orientados a colunas e linhas diferem em seu mecanismo de armazenamento.