Arquitetura, componentes, modelo de dados e casos de uso de HBase

Índice:

Anonim

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 tem RowId, que é a coleção de várias famílias de colunas que estão presentes na tabela.

As famílias de colunas presentes no esquema são pares de valores-chave. Se observarmos em detalhes 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 tem seus próprios metadados, como carimbo de data / hora e outras informações.

Mecanismo de armazenamento em HBase

Chegando ao HBase, os seguintes são os termos-chave que representam o esquema da tabela

  • Tabela : 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 de {linha, coluna, versão} especifica exatamente uma definição de célula no HBase.

Neste tutorial, você aprenderá,

  • Mecanismo de armazenamento em HBase
  • Modelo de Dados HBase
  • Arquitetura HBase e seus componentes importantes
  • Dados de leitura e gravação HBase explicados
  • Casos de uso de HBase
  • HBASE vs. HDFS

Armazenamento orientado a coluna versus orientado a linha

Os armazenamentos orientados por coluna e linha diferem em seu mecanismo de armazenamento. Como todos sabemos, os modelos relacionais tradicionais armazenam dados em termos de formato baseado em linha, 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 por linha
  • Quando a situação se trata de processo e análise, usamos essa abordagem. Como o processamento analítico online e suas aplicações.
  • Processos transacionais on-line , como domínios bancários e financeiros, usam essa abordagem.
  • A quantidade de dados que podem ser armazenados neste modelo é muito grande, como em termos de petabytes
  • Ele é projetado para um pequeno número de linhas e colunas.

Modelo de Dados HBase

O 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 de modelo de dados HBase representa atributos para os 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 um atributo correspondente ao objeto

Arquitetura HBase e seus componentes importantes

Abaixo está um arquiteto detalhado do HBase com componentes:

Diagrama de Arquitetura HBase

A arquitetura do HBase consiste principalmente em quatro componentes

  • HMaster
  • HRegionserver
  • HRegions
  • Funcionário do zoológico
  • HDFS

HMaster:

HMaster em 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 mudanças de metadados. Em um ambiente de cluster distribuído, o Master é executado em NameNode. O Master executa vários threads em segundo plano.

A seguir estão as funções importantes desempenhadas pelo HMaster no HBase.

  • Desempenha um papel vital em termos de desempenho e manutenção de nós no cluster.
  • O HMaster fornece desempenho administrativo e distribui serviços para servidores de diferentes regiões.
  • O HMaster atribui regiões aos servidores de região.
  • O HMaster tem recursos como controlar o 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 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, enable, disable)
  • 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 entra em contato diretamente 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 servidores de várias regiões. Hlog presente nos servidores da região que irão armazenar todos os arquivos de log.

Servidores de regiões 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 o grupo de colunas real. Porém, o cliente pode entrar em contato diretamente com os servidores HRegion, não havendo necessidade de permissão obrigatória do HMaster para o cliente quanto à comunicação com os servidores HRegion. O cliente requer a ajuda do HMaster quando operações relacionadas a metadados e mudanças de esquema são necessárias.

HRegionServer é a implementação do Region Server. É responsável por servir e gerenciar regiões ou dados que estão presentes em um cluster distribuído. Os servidores da região são executados em nós de dados presentes no cluster Hadoop.

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
  • Comunicar-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 são compostos por famílias de colunas. Ele contém várias lojas, uma 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 é para 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 deseja se comunicar com as regiões, o cliente do servidor deve primeiro abordar o ZooKeeper.

É um projeto de código aberto e fornece muitos serviços importantes.

Serviços fornecidos pelo ZooKeeper

  • Mantém informações de configuração
  • Fornece sincronização distribuída
  • Estabelecimento de comunicação do cliente com os servidores da região
  • Fornece nós efêmeros para os quais representam servidores de diferentes regiões
  • Usabilidade de servidores principais de nós efêmeros para descobrir servidores disponíveis no cluster
  • Para rastrear falhas de servidor e partições de rede

Nós mestre e escravo HBase (servidores de região) se registraram no ZooKeeper. O cliente precisa acessar a configuração de quorum ZK (zookeeper) para se conectar com os servidores mestre e regional.

Durante uma falha de nós presentes no cluster HBase, ZKquoram irá disparar mensagens de erro e começa a reparar os nós com falha.

HDFS:

HDFS é um sistema de arquivos distribuído Hadoop, como o nome indica, fornece um ambiente distribuído para o armazenamento e é um sistema de arquivos projetado de forma a ser executado 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 é executado em hardware de mercadoria barato. Ao adicionar nós ao cluster e realizar o processamento e armazenamento usando o hardware de mercadoria 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, em um caso em que qualquer nó caia, não haverá perda de dados, ele terá um mecanismo de recuperação de backup adequado.

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

Dados de leitura e gravação HBase explicados

As operações de leitura e gravação do cliente para o arquivo H podem ser mostradas no diagrama abaixo.

Etapa 1) O cliente deseja gravar dados e, por sua vez, primeiro se comunica com o servidor de regiões e, em seguida, com as regiões

Etapa 2) Regiões contatando o memstore para armazenamento associado ao grupo de colunas

Etapa 3) Primeiros armazenamentos de dados no Memstore, onde os dados são classificados e, depois disso, são descarregados em HFile. O principal motivo para usar o Memstore é armazenar dados em um sistema de arquivos distribuído com base na chave de linha. O memstore será colocado na memória principal do servidor de região enquanto os HFiles são gravados no HDFS.

Etapa 4) O cliente deseja ler os dados das regiões

Etapa 5) Por sua vez, o cliente pode ter acesso direto ao armazenamento de memória e pode solicitar dados.

Etapa 6) O cliente aborda o HFiles para obter os dados. Os dados são buscados e recuperados pelo Cliente.

Memstore mantém modificações na memória para o armazenamento. A hierarquia de objetos nas regiões do HBase é mostrada de cima para baixo na tabela abaixo.

Mesa Tabela HBase presente no cluster HBase
Região HRegions para as tabelas apresentadas
Armazenar Ele armazena por ColumnFamily para cada região da tabela
Memstore
  • Memstore para cada loja para cada região da mesa
  • Ele classifica os dados antes de descarregar em HFiles
  • O desempenho de gravação e leitura aumentará devido à classificação
StoreFile StoreFiles para cada loja para cada região da tabela
Quadra Blocos presentes dentro de StoreFiles

Casos de uso de HBase

A seguir estão exemplos de casos de uso de HBase com uma explicação detalhada da solução que ele fornece para vários problemas técnicos

Declaração do Problema Solução
A indústria de telecomunicações enfrenta os seguintes desafios técnicos
  • Armazenamento de bilhões de registros de log de CDR (gravação detalhada de chamadas) gerados pelo domínio de telecomunicações
  • Fornecimento de acesso em tempo real a registros de CDR e informações de faturamento de clientes
  • Fornece solução econômica em comparação com sistemas de banco de dados tradicionais
O HBase é usado para armazenar bilhões de linhas de registros de chamadas detalhados. Se 20 TB de dados forem adicionados por mês ao banco de dados RDBMS existente, o desempenho irá se deteriorar. 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 de bancos 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 financeiras 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.

Fora isso, o HBase pode ser usado

  • Sempre que houver necessidade de escrever aplicativos pesados.
  • Execução de análises de log online e geração de relatórios de conformidade.

HBase vs. HDFS

O HBase é executado em 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 meio de comandos shell, API cliente em Java, REST, Avro ou Thrift
  • Acessado principalmente por meio de trabalhos de MR (Map Reduce)
  • O armazenamento e o processo podem ser executados
  • É apenas para áreas de armazenamento

Alguns aplicativos industriais de TI típicos usam operações HBase junto com o Hadoop. Os aplicativos incluem dados da bolsa de valores, operações de dados bancários online e processamento de Hbase é o método de solução mais adequado.

Resumo

Hbase é um banco de dados distribuído orientado a colunas NoSql disponível na fundação apache. O HBase oferece mais desempenho para recuperar menos registros em vez de Hadoop ou Hive. É muito fácil pesquisar qualquer valor de entrada porque ele oferece suporte a indexação, transações e atualização.

Podemos realizar análises online em tempo real usando Hbase integrado ao ecossistema Hadoop. Ele tem uma fragmentação automática e configurável para conjuntos de dados ou tabelas e fornece APIs para realizar os trabalhos de MapReduce.