De zero única linha HBase 02: HBase compreensão abrangente da arquitetura (recolha recomendado)

Autor |  notas comprimido por

 Zebian | Xu Veyron

Foto da capa | CSDN baixar a China visuais

Internet vi um monte de HBaes relacionados arquitetura paisagística, tons de conteúdo até encontrar um site do MapR oficial do artigo, escrito muito vívida.

https://mapr.com/blog/in-depth-look-hbase-architecture/#.VdMxvWSqqko,

Portanto, este artigo como um esqueleto, traduziu muitos do conteúdo original, enquanto alguns detalhes de sua expansão, a formação deste artigo.

composição arquitectura HBase

A partir a estrutura física, HBase contém três tipos de servidor, tratador, HMaster, servidor região, utilizando a estrutura de um modo de mestre-escravo.

  • servidor da região é usada principalmente para operações de leitura serviço e escrever. Quando um usuário acessa os dados por meio do cliente, o cliente irá comunicar diretamente e HBase RegionServer.

  • HMaster principalmente gestão de servidor da região, DDL (criar, apagar a tabela) operação.

  • Zookeeper faz parte do HDFS (Hadoop Distributed File System), usado principalmente para manter a sobrevivência de todo o cluster, para proteger a HA, a falha automaticamente transferido.

Embora o armazenamento subjacente, ou dependente dos HDFS.

  • DataNode dados armazenados do Hadoop Região Server gerencia todos os dados é a presença HBase no HDFS.

  • Os metadados Hadoop NameNode mantém todos os blocos de dados físicos.

servidor 1.1 região

HBase segmentação horizontal de tabelas de acordo com o RowKey escopo após a segmentação é atribuído a cada região. A região que contém todas as linhas em uma tecla de início mesa e a tecla fim. região será atribuído a cada servidor da região de cluster, enquanto os usuários estão lendo e escrevendo para interagir com o servidor da região. A região geralmente recomendado tamanho 5-10g.

1,2 HBase HMaster

Geral também chamado HMaster, HMaster principais responsabilidades incluem dois aspectos:

  • servidor da região de interação e sobre a gestão servidor da região unificada : região de distribuição da bota, a recuperação após o colapso da re-alocação região, balanceamento de carga Reassign região

  • funções relacionadas de Admin : criar, excluir operações DDL atualização da estrutura da tabela

1.3 Zookeeper

Zookeeper uso HBase como serviços de coordenação distribuídas para manter o servidor de estado do cluster.

Zookeeper através batimento cardíaco manteve a sobrevivência e qual servidor está disponível e fornece servidor de notificação de falhas. Ao mesmo tempo, usando o protocolo de coerência para assegurar a consistência de cada nó distribuído.

Aqui, na necessidade de atenção especial, tratador encarregado das eleições para o HMaster, HMater se um nó vai para baixo, ele irá selecionar outro HMaster nó no estado ativo.

1.4 como esses componentes trabalham juntos para coordenar

Zookeeper sistema distribuído para a partilha de estados membros, e vai ser servidor da região, HMaster (ativo) para manter a sessão, mantendo uma sessão ativa com estes nó efêmera (conceito de zk nó temporária in) por segundo.

Abaixo, podemos ver, zk que desempenhou um papel no núcleo.

HMaster mais competição vai continuar a se tornar tratador nó temporária, tratador e vai criar o primeiro HMaster bem sucedido como o único ativo no momento em HMaster, outra HMater no suporte por estado. O HMaster ativa continua a enviar a pulsação para zk, HMaster outro suporte por nó de estado irá monitorar as informações de falha do HMaster ativo. Uma vez ativo baixo HMaster, ele vai voltar a competir a nova HMaster ativo. Isso permite que HMaster alta disponibilidade.

Cada servidor da região cria um nó efêmero. HMaster monitorar esses nós para identificar qual servidor da região está disponível, que falhou nó é baixo.

Se um servidor da região está ativa ou não HMaster para enviar zk heatbeat, e, em seguida, a conversa entre zk irá expirar, e irá eliminar os nós de temporários ZK, pense que este nó falhar necessário da linha de montagem.

Outros nós ouvinte recebe uma mensagem que o nó falhou é removida. Por exemplo actvie de HMaster escutas mensagem servidor da região, se você encontrar um servidor de determinada região é baixo, ele irá realocar servidor da região para recuperar os dados região correspondente. Como outro exemplo, se pelo nó HMaster escuta nó ativo de HMaster, uma vez que a notificação de falhas é recebido, haverá uma competição na linha para se tornar o novo HMaster ativo.

1,5 primeira visita HBase

Há uma mesa especial HBase de conteúdos, chamada tabela META, guardar a localização de cada região do cluster. Zookeeper Salvar as informações de localização da tabela de meta.

Quando aglomerado primeira visita HBase, faça o seguinte:

1) cliente obtém informações de localização armazenadas na tabela meta da tabela meta saber zk que é armazenado no servidor da região, eo cliente armazena em cache as informações de localização;

2) cliente consulta a tabela de meta para salvar um servidor da região particular, consulta informações da tabela de meta, o acesso à linha região que você deseja acessar a chave está na tabela na qual o servidor região.

3) O cliente de acesso directo ao servidor da região alvo, para se obter o correspondente fileira

Além disso, olhamos para a estrutura de armazenamento mesa meta.

  • mesa Meta mantém uma lista de todas as informações da região

  • mesa Meta armazenados no formato de dados semelhante a um b-tree

  • Salvar dados na forma de keyvalue

  • Key: região do nome da tabela, iniciar-chave Valores de informação: informações sobre servidor da região

servidor da região de profundidade

Um servidor da região de execução em um dos nó de dados HDFS, e tem os seguintes componentes:

  • WAL: nome completo Write Ahead Log, que pertence ao arquivo em sistemas distribuídos. Principalmente usado para armazenar novos dados ainda não foi persistido no disco. Se os novos dados não é persistente, nó tempo de inatividade ocorre, ele pode ser usado para restaurar os dados WAL.

  • BlockCache : é um cache de leitura. Ele é armazenado nos dados de acesso de alta frequência. Quando o cache está cheio, ele irá limpar os dados menos recentemente acessados.

  • MenStore : é um cache de gravação. Ele armazena os dados ainda não foram gravados no disco. Ele será gravado em disco antes, por conta própria para classificar os dados, garantindo, assim, os dados são escritos sequencialmente. Cada família Colum cada região haverá um memstore correspondente. (Sim, se um nó vai para baixo, a existência dos dados de cache não está colocando ordens, podemos garantir que os dados não são perdidos WAL)

  • HFiles : cada linha de chaves armazenadas na ordem lexicográfica.

2.1 gravar dados HBase para interagir com o servidor da região

Todo o processo de escrita mais complexa, servidor da região interativa é a parte mais importante aqui apenas interação com o servidor da região.

Ele é dividido em duas etapas, e escrever cache de gravação WAL.

"Na verdade, onde, além de garantir que os dados não é perdido, teve a gentileza de escrever para melhorar a eficiência relacionado a um específico documentos relacionados de acompanhamento especificamente instruções escritas na implantação"

1) Adicione WAL

Quando um cliente envia uma put pedido, você precisa escrever WAL (write-ahead-log) no servidor da região.

Observe três coisas:

  • RegistoR está em um servidor da região, uma região não é um

  • de dados de escrita é adicionado à cauda log

  • Os principais dados sobre o log para garantir que nenhum dado fora do disco não pode ser perdida após um acidente de servidor

2) cache de gravação

Os dados são gravados WAL sucesso, continuará a escrever MemStore.

Ack, em seguida, irá retornar para o cliente indicando a gravação sucedido.

2.2 HBase MemStroe

atualizar dados MemStore armazenados na memória principal para formar sequência KeyValue dicionário, com hFile salvo no interior do mesmo.

Cada família tem uma coluna correspondente memstore

dados Memstore é atualizado no valor-chave para formar armazenamento ordenada, nota que figura, linhas ordenação lexicográfica, a versão imprensa ordem inversa.

Podemos ver, composição chave incluem-cf-col-versão RowKey.

2,3 HBase nivelada região

Quando um número suficiente de armazenamento MemStore de dados, todo o conjunto foi condenada a escrever um novo arquivos hFile armazenados no HDFS.

cada HBase família Colum tem uma pluralidade de hFile, para armazenar o keyValue real.

Note que isso explica por que o número de HBase em columfaily é limitada (especificamente quanto?).

Cada cf tem uma MemStore correspondente, quando um MemStore completo, a região pertence a todos memstore será nivelada para o disco. Assim, o menor rubor unidade de MemStore é uma região, em vez de um MemStore.

rubor, ao mesmo tempo, ele também armazena algumas informações adicionais, tais como o último escrito pelo número de série, deixar o know sistema que é actualmente persistência para que posição.

O maior número de série como metadados, são armazenados em cada hFile, a persistência para indicar qual local na próxima persistência tempo deve continuar de onde. Quando uma região é iniciado, ele lê o número de série de cada hFile, e o número máximo de sequência é usado como o novo número de sequência de partida.

hFile profundidade

3.1 hFile write

HBase, os dados na forma de um KV ordenou, armazenado no hFile. Quando MemStore dados suficientes armazenados está escrito a todos hFile kv armazenados HDFS.

Aqui está o processo de escrever uma gravação seqüencial de arquivos, difícil de evitar o processo de mover um grande número de cabeças, muito mais eficiente do que a gravação aleatória.

FIG hFile estrutura lógica:

Quatro partes: bloco Scanned p, bloco não-digitalizados p, dados em tempo Abertura p e reboque.

  • Bloco P do Scanned : indica varredura hFile, todos os blocos de dados que parte serão lidos, e compreendendo Folha Índice bloco Bloom Block.

  • Bloco P-explorado e não : não indica ser lido ao digitalizar hFile, incluindo Meta bloco e nível intermediário de dados de índice Blocos duas partes.

  • Open - ON-Load o p : HBase disse em servidor da região é iniciado, ele é carregado na memória. Incluindo FileInfo, bloco de filtro de Bloom, o bloco de dados de índice e índice de bloco de meta.

  • Reboque : hFile indica a informação de base, e os valores das respectivas porções de informação de endereçamento de deslocamento.

documentos semelhantes são várias camadas índice b + tree:

  • Kv armazenado em uma ordem ascendente;

  • ponto de índice de raiz para o nó não-folha

  • Finalmente, a chave é colocada índice intermédio para cada bloco de dados (b + a nós não de folhas da árvore)

  • Cada bloco de dados tem suas próprias folhas de índice (nó folha da árvore b +)

  • índice folha Kv aponta para bloco de dados por parte do 64kb chave de linha

Final do arquivo não é um nó de reboque, aponte para um bloco de meta. nó reboque tem também a informação adicional, tal como o tempo e informação filtro flor.

Bloom filtro nos ajudam a filtrar os RowKey não incluídos neste HFilfe no.

informações tempo é usado para pular a linha que não estão dentro da faixa HFilie tempo.

Portanto, quando um hFile ler, hFile informações de índice serão armazenados em cache no BlockCache, de modo que torna a consulta requer apenas uma operações de consulta de disco, pesquisas posteriores só precisa ler as informações de índice dentro da blockcache.

A estrutura física da relação servidor região é a seguinte:

regionserver: região = 1: n, cada região tem uma pluralidade de servidor região.

região:. = loja 1: n-, cada um dos quais tem uma pluralidade de região loja

loja: memstore = 1: 1.

Memstore: hFile = 1: n.

推荐阅读:2020 年最新版 68 道Redis面试题,20000 字干货,赶紧收藏起来备用!
我最喜欢的云 IDE 推荐!
应聘苹果数据科学家,你需要知道些什么?
最近一个名为 BTCU 的比特币分叉,准备用新分叉解决比特币网络的旧问题
Soul App 高管被捕,恶意举报导致竞品被下架
2.2版本发布!TensorFlow推出开发者技能证书
真香,朕在看了!
Publicado 280 artigos originais · Louvor obteve 1.245 · Visualizações 1,18 milhão +

Acho que você gosta

Origin blog.csdn.net/FL63Zv9Zou86950w/article/details/104871559
Recomendado
Clasificación