Apache HBase é um banco de dados não relacional, distribuído e de código aberto modelado de acordo com o Bigtable do Google e escrito em Java. Ele fornece recursos semelhantes ao Bigtable sobre Hadoop e HDFS (Hadoop Distributed Filesystem), ou seja, fornece uma maneira tolerante a falhas de armazenar grandes quantidades de dados esparsos, que são comuns em muitos casos de uso de big data. O HBase é usado para acesso de leitura / gravação em tempo real ao Big Data.
A arquitetura do HBase Storage compreende vários componentes. Vamos dar uma olhada nas funções desses componentes e saber como os dados estão sendo gravados.
HFiles:
HFiles forma o baixo nível da arquitetura do HBase. HFiles são arquivos de armazenamento criados para armazenar os dados do HBase de forma rápida e eficiente.
HMaster:
sobrecarga de método vs substituição de método
O HMaster é responsável por atribuir as regiões a cada HRegionServer quando o HBase é iniciado. É responsável por gerenciar tudo relacionado a linhas, tabelas e suas atividades de coordenação. O Hmaster também possui os detalhes dos metadados.
Componentes de HBase:
O HBase tem os seguintes componentes:
- Tabela - Inclui regiões
- Região - intervalo de linhas armazenadas juntas
- Servidores de região - atende uma ou mais regiões
- Servidor Mestre - Daemon é responsável por gerenciar o cluster HBase
O HBase armazena dados diretamente no HDFS e depende muito da alta disponibilidade e tolerância a falhas do HDFS.
Arquitetura de armazenamento HBase:
O fluxo geral é que um cliente contate o Zookeeper primeiro para encontrar uma chave de linha específica. Ele faz isso recuperando o nome do servidor do Zookeeper. Com essas informações, ele pode agora consultar esse servidor para obter o servidor que contém a metatabela. Ambos os detalhes são armazenados em cache e pesquisados apenas uma vez. Por último, ele pode consultar o metaservidor e recuperar o servidor que possui a linha que o cliente está procurando.
Depois de saber em que região a linha reside, ele também armazena em cache essas informações e contata o HRegionServer diretamente. Assim, com o tempo, o cliente tem informações completas de onde obter as linhas sem precisar consultar o metasservidor novamente. Quando HRegion é aberto, ele configura uma instância Store para cada HColumnFamily para cada tabela. Os dados são gravados quando o cliente emite uma solicitação para o HRegionServer que fornece os detalhes para a instância HRegion correspondente. A primeira etapa é que temos que decidir se os dados devem ser primeiro gravados no ‘Write-Ahead-Log’ (WAL) representado pela classe HLog. A decisão é baseada na bandeira definida pelo cliente.
Depois que os dados são gravados no WAL, eles são colocados no MemStore. Ao mesmo tempo, o Memstore é verificado se está cheio e, nesse caso, é solicitada uma descarga no disco. Em seguida, os dados são gravados no HFile.
Tem alguma questão para nós? Mencione-os na seção de comentários e entraremos em contato com você.
Postagens Relacionadas
Insights sobre arquitetura HBase