Regiões em HBase
RegionServers são uma coisa, mas você também tem que dar uma olhada em como regiões individuais trabalham. Em HBase, uma mesa é tanto espalhados por uma série de RegionServers, bem como sendo constituída por regiões individuais. Como tabelas são divididas, as divisões se tornam regiões. Regiões armazenar uma série de pares chave-valor, e cada RegionServer gere um número configurável de regiões.
Mas o que as regiões individuais parece? HBase é um armazenamento de dados orientada a coluna da família, então, como as regiões individuais armazenar pares chave-valor com base nas famílias de colunas que pertencem? A figura a seguir começa a responder a estas perguntas e ajuda a digerir a informação mais vital sobre a arquitetura do HBase.
HBase é escrito em Java - como a grande maioria das tecnologias Hadoop. Java é uma linguagem de programação orientada a objeto e uma tecnologia elegante para computação distribuída. Então, como você continuar a descobrir mais sobre o HBase, lembre-se de que todos os componentes da arquitetura são, em última análise objetos Java.
Primeiro, a figura anterior dá uma boa idéia do que região objetos realmente parecido, de um modo geral. Ele também deixa claro que as regiões de dados separados em famílias de colunas e armazenar os dados no HDFS usando objetos hFile.
Quando os clientes colocar pares de valores chave para o sistema, as teclas são processados de modo a que os dados são armazenados com base na família de colunas do par pertence. Como mostrado na figura, cada objeto de armazenamento família coluna tem um cache de leitura chamado BlockCache e um cache de gravação chamado MemStore. O BlockCache contribui com o desempenho de leitura aleatória.
Os dados são lidos em blocos de HDFS e armazenado no BlockCache. Leituras subsequentes para os dados - ou os dados armazenados na proximidade - será lido a partir da RAM, em vez de disco, melhorando o desempenho geral. O Write Ahead Log (WAL, para abreviar) garante que suas gravações HBase são confiáveis. Há uma WAL por RegionServer.
Tenha sempre em atenção a Lei de Ferro da Computação Distribuída: A falha não é a exceção - é a norma, especialmente quando o agrupamento de centenas ou mesmo milhares de servidores. Google seguiu a lei de ferro na concepção BigTable e HBase seguiram o exemplo.
Quando você escrever ou modificar dados no HBase, os dados são primeiro persistiu ao WAL, que são armazenados no HDFS, em seguida, os dados são gravados no cache MemStore. Em intervalos configuráveis, pares chave-valor armazenados no MemStore são escritos para HFiles no HDFS e posteriormente entradas WAL são apagadas.
Se ocorrer uma falha depois de a escrita inicial WAL mas antes a escrita MemStore final ao disco, o WAL podem ser repetidos para evitar qualquer perda de dados.
Três objetos hFile estão em uma família de coluna e duas no outro. O design do HBase é para liberar os dados da família de colunas armazenadas no MemStore a um hFile por descarga. Em seguida, em intervalos configuráveis HFiles são combinados em HFiles maiores. Esta estratégia de filas-se a operação de compactação crítica em HBase.