Vídeo: 18 Hadoop Ecosystem Major Components 2024
O Zookeeper é um conjunto distribuído de servidores que, coletivamente, fornece serviços confiáveis de coordenação e sincronização para aplicativos em cluster. É certo que o nome "Zookeeper" pode parecer primeiramente uma escolha estranha, mas quando você entende o que faz para um cluster HBase, você pode ver a lógica por trás disso. Quando você está construindo e depurando aplicativos distribuídos "é um zoológico lá fora", então você deve colocar o Zookeeper em sua equipe.
Os agrupamentos de HBase podem ser enormes e a coordenação das operações dos MasterServers, RegionServers e clientes pode ser uma tarefa assustadora, mas é aí que o Zookeeper entra na imagem. Como no HBase, os clusters do Zookeeper geralmente são executados em servidores x86 de commodities de baixo custo.
Cada servidor x86 individual executa um único processo de software Zookeeper (a seguir designado por um servidor Zookeeper), com um servidor Zookeeper eleito pelo conjunto como líder e o resto dos servidores são seguidores. Os conjuntos Zookeeper são regidos pelo princípio do quorum da maioria.
As configurações com um servidor Zookeeper são suportadas para fins de teste e desenvolvimento, mas se você quiser um cluster confiável que possa tolerar a falha do servidor, você deve implantar pelo menos três servidores do Zookeeper para obter o quorum da maioria.
Então, quantos servidores Zookeeper você precisará? Cinco é o mínimo recomendado para o uso da produção, mas você realmente não quer ir com o mínimo. Quando você decide planejar seu conjunto Zookeeper, siga esta fórmula simples: 2F + 1 = N onde F é o número de falhas que você pode aceitar no seu cluster Zookeeper e N é o número total de servidores Zookeeper que você deve implantar.
Cinco é recomendado porque um servidor pode ser desligado para manutenção, mas o cluster Zookeeper ainda pode tolerar uma falha no servidor.
O Zookeeper fornece coordenação e sincronização com o que chama znodes , que são apresentados como uma árvore de diretórios e se assemelham aos nomes do caminho do arquivo que você veria em um sistema de arquivos Unix. Znodes fazer armazenar dados, mas não muito para falar - atualmente menos de 1 MB por padrão.
A idéia aqui é que o Zookeeper armazena os znodes na memória e que esses znodes baseados em memória fornecem acesso rápido ao cliente para coordenação, status e outras funções vitais exigidas por aplicativos distribuídos como o HBase. Zookeeper replica znodes em todo o conjunto, então, se os servidores falharem, os dados do znode ainda estarão disponíveis enquanto o quorum da maioria dos servidores ainda estiver funcionando.
Outro conceito do Zookeeper primário diz respeito ao modo como o znode lê (versus escritas) são tratados. Qualquer servidor do Zookeeper pode lidar com leituras de um cliente, incluindo o líder, mas apenas os problemas do líder atomic znode escrevem - escreve que êxito ou falha completamente.
Quando um pedido de gravação do znode chega ao nó líder, o líder transmite a solicitação de gravação para os nós seguidores e então espera que a maioria dos seguidores reconheça que o znode escreve completo. Após o reconhecimento, o líder emite o znode se escreve e, em seguida, relata o status de conclusão bem-sucedida ao cliente.
Znodes fornece algumas garantias muito poderosas. Quando um cliente Zookeeper (como um HBase RegionServer) grava ou lê um znode, a operação é atômica . Ele é completamente exitoso ou falha completamente - não há leituras ou escritas parciais.
Nenhum outro cliente concorrente pode fazer com que a operação de leitura ou gravação falhe. Além disso, um znode possui listas de controle de acesso associadas a ele para segurança e suporta versões, timestamps e notificações aos clientes quando ele muda.
O Zookeeper reúne znodes em todo o conjunto, então, se os servidores falharem, os dados do znode ainda estão disponíveis enquanto o quorum da maioria dos servidores ainda estiver funcionando. Isso significa que as gravações em qualquer znode de qualquer servidor Zookeeper devem ser propagadas em todo o conjunto. O líder Zookeeper gerencia essa operação.
Esta abordagem de gravação do znode pode fazer com que os seguidores se atrasem no líder por períodos curtos. Zookeeper resolve esse problema potencial, fornecendo um comando de sincronização. Clientes que não podem tolerar esta falta temporária de sincronização no cluster do Zookeeper podem decidir emitir um comando de sincronização antes de ler znodes.