Vídeo: Repolarização ventricular 2024
RegionServers são uma coisa, mas você também tem que dar uma olhada em como as regiões individuais funcionam. No HBase, uma tabela é espalhada por uma série de RegionServers, além de ser constituída por regiões individuais. À medida que as tabelas são divididas, as divisões se tornam regiões. As regiões armazenam uma gama de pares de valores-chave e cada RegionServer gerencia um número configurável de regiões.
Mas como são as regiões individuais? O HBase é uma loja de dados orientada para a coluna, então, como as regiões individuais armazenam pares de valores-chave com base nas famílias de colunas a que pertencem? A seguinte figura começa a responder a essas perguntas e ajuda a digerir informações mais vitais sobre a arquitetura do HBase.
O HBase está escrito em Java - como a grande maioria das tecnologias Hadoop. Java é uma linguagem de programação orientada a objetos e uma tecnologia elegante para computação distribuída. Então, enquanto continua a descobrir mais sobre o HBase, lembre-se de que todos os componentes da arquitetura são, em última instância, objetos Java.
Em primeiro lugar, a figura anterior dá uma boa idéia do que os objetos da região realmente se parecem, geralmente falando. Ele também deixa claro que as regiões separam dados em famílias de colunas e armazenam os dados no HDFS usando objetos HFile.
Quando os clientes colocam pares de valores-chave no sistema, as chaves são processadas para que os dados sejam armazenados com base na família de colunas ao qual o par pertence. Conforme mostrado na figura, cada objeto de armazenamento de família de colunas possui um cache de leitura chamado BlockCache e um cache de gravação chamado MemStore. O BlockCache ajuda com o desempenho de leitura aleatória.
Os dados são lidos em blocos do HDFS e armazenados no BlockCache. As leituras subseqüentes para os dados - ou dados armazenados em proximidade - serão lidas da RAM em vez do disco, melhorando o desempenho geral. O Log Write Ahead (WAL, para abreviar) garante que suas escritas HBase sejam confiáveis. Existe um WAL por RegiãoServer.
Certifique-se sempre da lei de ferro da computação distribuída: uma falha não é a exceção - é a norma, especialmente quando se agrupam centenas ou mesmo milhares de servidores. O Google seguiu a Lei de Ferro na concepção do BigTable e a HBase seguiram o exemplo.
Quando você escreve ou modifica dados no HBase, os dados são primeiro persistidos para o WAL, que é armazenado no HDFS, e os dados são gravados no cache MemStore. Em intervalos configuráveis, os pares de valores-chave armazenados no MemStore são escritos em HFiles no HDFS e depois as entradas WAL são apagadas.
Se ocorrer uma falha após a escrita WAL inicial, mas antes de , o MemStore final gravar no disco, o WAL pode ser repetido para evitar qualquer perda de dados.
Três objetos HFile estão em uma família de colunas e dois na outra. O design do HBase é para descarregar os dados da família da coluna armazenados no MemStore para um HFile por descarga. Então, em intervalos configuráveis, os HFiles são combinados em HFiles maiores. Essa estratégia coloca a operação de compactação crítica no HBase.