Zookeeper e hbase confiabilidade

Tratador é um cluster distribuída de servidores que proporcionam colectivamente serviços de coordenação e de sincronização de confiança para aplicações em cluster. Na verdade, o nome de “Zookeeper” pode parecer à primeira vista, uma escolha estranha, mas quando você entender o que ele faz para um cluster HBase, você pode ver a lógica por trás dele. Quando você está construindo e depurar aplicações distribuídas “é um zoológico lá fora”, então você deve colocar Zookeeper em sua equipe.

Video: Apache HBase - Just the Basics

clusters de HBase pode ser enorme e coordenar as operações das MasterServers, RegionServers, e os clientes podem ser uma tarefa difícil, mas é aí que Zookeeper entra em cena. Como em HBase, os clusters Zookeeper normalmente são executados em servidores de commodities x86 de baixo custo.

Cada servidor x86 indivíduo executa um único processo de software Zookeeper (doravante referida como um servidor Zookeeper), com um servidor Zookeeper eleito pelo conjunto como o líder e o restante dos servidores são seguidores. ensembles Zookeeper são regidos pelo princípio de um quorum de maioria.

Video: Zookeeper - Web Development

Configurações com um servidor Zookeeper são suportadas para fins de teste e desenvolvimento, mas se você quiser um cluster confiável, que pode tolerar falha do servidor, você precisa implantar pelo menos três servidores Zookeeper para atingir um quorum de maioria.

Então, quantos servidores Zookeeper você vai precisar? Cinco é o mínimo recomendado para uso em produção, mas você realmente não quer ir com o mínimo. Quando você decide planejar o seu ensemble Zookeeper, siga esta fórmula simples: 2F + 1 = N, onde F é o número de falhas você pode aceitar no seu cluster Zookeeper e N é o número total de servidores Zookeeper você deve implantar.

Cinco é recomendado porque um servidor pode ser desligado para manutenção, mas o cluster Zookeeper ainda pode tolerar uma falha do servidor.



Zookeeper proporciona coordenação e sincronização com o que chama de znodes, quais são apresentadas como uma árvore de diretórios e assemelham-se os nomes de caminho de arquivo que você veria em um sistema de arquivos Unix. Znodes Faz armazenamento de dados, mas não muito para falar de - atualmente menos de 1 MB por padrão.

A idéia aqui é que Zookeeper armazena znodes na memória e que estes znodes baseados em memória fornecer acesso do cliente rápido para a coordenação, status e outras funções vitais exigidos por aplicações distribuídas como HBase. Zookeeper replica znodes em todo o conjunto por isso, se os servidores falhar, os dados znode ainda está disponível, enquanto um quorum maioria dos servidores ainda está instalado e funcionando.

Video: Deploying Hbase in Apache Hadoop

Outra principais preocupações conceito Zookeeper como znode lê (versus gravações) são manipulados. Qualquer servidor Zookeeper pode lidar com um texto de um cliente, incluindo o líder, mas apenas as questões líder atômico znode escreve - escreve que seja completamente ter sucesso ou falhar completamente.

Quando uma solicitação znode gravação chega ao nó líder, o líder transmite o pedido de escrita para os nós do seguidor e aguarda a maioria dos seguidores de reconhecer znode escrever completa. Após o reconhecimento, o líder emite a própria gravação znode e relata o status de conclusão bem sucedida para o cliente.

Video: Spark in Production and Spark HBase

Znodes fornecer algumas garantias muito poderosas. Quando um cliente Zookeeper (como um HBase RegionServer) escreve ou lê um znode, a operação é atômico. Ele quer completamente bem sucedida ou falhar completamente - há nenhuma parcial lê ou escreve.

Nenhum outro cliente concorrente pode causar a operação de leitura ou gravação a falhar. Além disso, um znode tem uma listas de controle de acesso (ACL) associados para a segurança, e suporta versões, timestamps e notificação aos clientes quando ela muda.

Zookeeper replica znodes em todo o conjunto por isso, se os servidores falhar, os dados znode ainda está disponível, enquanto um quorum maioria dos servidores ainda está instalado e funcionando. Isto significa que escreve a qualquer znode de qualquer servidor Zookeeper deve ser propagado em todo o conjunto. O líder Zookeeper gere esta operação.

Esta abordagem gravação znode pode causar seguidores a cair atrás do líder por curtos períodos. Zookeeper resolve esse problema em potencial, fornecendo um comando de sincronização. Os clientes que não podem tolerar essa falta temporária de sincronização dentro do cluster Zookeeper pode decidir emitir um comando sync antes de ler znodes.


Publicações relacionadas