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