Tutorial do ZooKeeper
O que รฉ um sistema distribuรญdo?
Um aplicativo distribuรญdo รฉ um aplicativo que pode ser executado em vรกrios sistemas em uma rede. Ele funciona simultaneamente, coordenando-se para concluir uma determinada tarefa. Essas tarefas podem levar muitas horas para serem concluรญdas por qualquer aplicativo nรฃo distribuรญdo.
O que รฉ o Zookeeper?
Zelador do Zoolรณgico Apache รฉ um serviรงo de coordenaรงรฃo distribuรญda de cรณdigo aberto que ajuda a gerenciar um grande conjunto de hosts. O gerenciamento e a coordenaรงรฃo em um ambiente distribuรญdo sรฃo complicados. O Zookeeper automatiza esse processo e permite que os desenvolvedores se concentrem na construรงรฃo de recursos de software, em vez de se preocuparem com sua natureza distribuรญda.
Zookeeper ajuda vocรช a manter informaรงรตes de configuraรงรฃo, nomenclatura e serviรงos de grupo para aplicativos distribuรญdos. Ele implementa diferentes protocolos no cluster para que o aplicativo nรฃo seja implementado por conta prรณpria. Ele fornece uma visรฃo รบnica e coerente de vรกrias mรกquinas.
Por que Apache Zookeeper?
Aqui estรฃo razรตes importantes por trรกs da popularidade do Zookeeper:
- Permite exclusรฃo mรบtua e cooperaรงรฃo entre processos de servidor
- Ele garante que seu aplicativo seja executado de forma consistente.
- O processo de transaรงรฃo nunca รฉ concluรญdo parcialmente. ร dado o status de Sucesso ou fracasso. O estado distribuรญdo pode ser mantido, mas nunca estรก errado
- Independentemente do servidor ao qual ele se conecta, um cliente poderรก ter a mesma visรฃo do serviรงo
- Ajuda vocรช a codificar os dados de acordo com o conjunto especรญfico de regras
- Ajuda a manter um namespace hierรกrquico padrรฃo semelhante a arquivos e diretรณrios
- Computadores, que funcionam como um sistema รบnico que pode ser conectado local ou geograficamente
- Permite ingressar/sair do nรณ em um cluster e status do nรณ em tempo real
- Vocรช pode aumentar o desempenho implantando mais mรกquinas
- Permite eleger um nรณ como lรญder para melhor coordenaรงรฃo
- O ZooKeeper funciona rapidamente com cargas de trabalho em que leituras de dados sรฃo mais comuns do que gravaรงรตes
Funcionรกrio do zoolรณgico Archiestrutura: Como funciona?
Aqui estรก uma breve explicaรงรฃo sobre apache Arquitetura do tratador:
- Zookeeper segue um cliente-servidor Archiarquitetura
- Todos os sistemas armazenam uma cรณpia dos dados
- Lรญderes sรฃo eleitos na startup

Servidor: O servidor envia uma confirmaรงรฃo quando qualquer cliente se conecta. Caso nรฃo haja resposta do servidor conectado, o cliente redireciona automaticamente a mensagem para outro servidor.
Clientes: o cliente รฉ um dos nรณs no cluster de aplicativos distribuรญdos. Ajuda vocรช a acessar informaรงรตes do servidor. Cada cliente envia uma mensagem ao servidor em intervalos regulares que ajuda o servidor a saber que o cliente estรก ativo.
lรญder: Um dos servidores รฉ designado Lรญder. Fornece todas as informaรงรตes aos clientes, bem como um reconhecimento de que o servidor estรก ativo. Ele executaria a recuperaรงรฃo automรกtica se algum dos nรณs conectados falhasse.
Seguidor: O nรณ do servidor que segue a instruรงรฃo do lรญder รฉ chamado de seguidor.
- As solicitaรงรตes de leitura do cliente sรฃo tratadas pelo servidor Zookeeper conectado correspondentemente
- As solicitaรงรตes de gravaรงรฃo do cliente sรฃo tratadas pelo lรญder Zookeeper.
Conjunto/Cluster: Grupo de servidores Zookeeper chamado ensemble ou a Cluster. Vocรช pode usar a infraestrutura do ZooKeeper no modo de cluster para ter o sistema no valor ideal quando estiver executando o Apache.
UI do ZooKeeper: Se vocรช quiser trabalhar com o gerenciamento de recursos do ZooKeeper, precisarรก usar WebUI. Ele permite trabalhar com o ZooKeeper usando a interface de usuรกrio da web, em vez de usar a linha de comando. Oferece comunicaรงรฃo rรกpida e eficaz com o aplicativo ZooKeeper.
O modelo de dados do Zookeeper (ZDM)
Agora, neste tutorial do ZooKeeper, vamos aprender sobre o modelo de dados do Zookeeper. A figura abaixo explica o modelo de dados Apache Zookeeper:

- O modelo de dados zookeeper segue um namespace hierรกrquico onde cada nรณ รฉ chamado de ZNode. Um nรณ รฉ um sistema onde o cluster รฉ executado.
- Cada ZNode possui dados. Pode ou nรฃo ter filhos
- Caminhos ZNode:
- Canรดnico, separado por barra e absoluto
- Nรฃo use nenhuma referรชncia relativa
- Os nomes podem ter caracteres Unicode
- ZNode mantรฉm a estrutura estatรญstica e o nรบmero de versรฃo para alteraรงรตes de dados.
Tipos de nรณs Zookeeper
Existem trรชs tipos de Znodes:
Persistรชncia znode: Este tipo de znode permanece ativo mesmo depois que o cliente que criou aquele znode especรญfico รฉ desconectado. Por padrรฃo, no zookeeper, todos os nรณs sรฃo persistentes se nรฃo for especificado.
Efรชmero znode: Este tipo de znode zookeeper permanece ativo atรฉ que o cliente esteja ativo. Portanto, quando o cliente se desconectar do zookeeper, ele tambรฉm serรก excluรญdo. Alรฉm disso, os nรณs efรชmeros nรฃo podem ter filhos.
Seqรผencial znode: znodes sequenciais podem ser efรชmeros ou persistentes. Portanto, quando um novo znode รฉ criado como um znode sequencial. Vocรช pode atribuir o caminho do znode anexando um nรบmero de sequรชncia de 10 dรญgitos ao nome original.
ZDM - Relรณgios
Zookeeper, um evento de observaรงรฃo รฉ um gatilho รบnico que รฉ enviado ao cliente que configurou a observaรงรฃo. Ocorreu quando os dados desse relรณgio foram alterados. O relรณgio ZDM permite que os clientes recebam notificaรงรตes quando o znode for alterado. Operaรงรตes de leitura ZDM como getData(), getChidleren(), existem e tรชm a opรงรฃo de definir um relรณgio.
Os relรณgios sรฃo ordenados, a ordem dos eventos de observaรงรฃo corresponde ร ordem das atualizaรงรตes. Um cliente poderรก ver um evento de observaรงรฃo para znode antes de ver os novos dados que correspondem a esse znode.
ZDM - lista de controle de acesso
Zookeeper usa ACLs para controlar o acesso aos seus znodes. ACL รฉ composta por um par de (Esquema: id, permissรฃo)
Construir em esquemas ACL:
mundo: tem um รบnico id, qualquer um
auth: Nรฃo usa nenhum id, representa qualquer usuรกrio autenticado
resumo: use um nome de usuรกrio: senha
host: permite que vocรช use o nome do host do cliente como identidade de ID da ACL
IP: use o endereรงo IP do host do cliente como identidade de ID da ACL
Permissรตes ACL:
- CRIAR
- LER
- ESCREVA
- EXCLUIR
- ADMIN
Ex (IP: 192.168.0.0/16, LEIA)
O ZKS โ Estados de Sessรฃo e Tempo de Vida

- Antes de executar qualquer solicitaรงรฃo, รฉ importante que o cliente estabeleรงa uma sessรฃo com o serviรงo
- Todos os clientes de operaรงรตes enviados para o serviรงo sรฃo automaticamente associados a uma sessรฃo
- O cliente pode se conectar a qualquer servidor do cluster. Mas ele se conectarรก a apenas um รบnico servidor
- A sessรฃo fornece โgarantias de pedidoโ. As solicitaรงรตes na sessรฃo sรฃo executadas na ordem FIFO
- Os principais estados de uma sessรฃo sรฃo 1) Conectando, 2) Conectado 3) Fechado 4) Nรฃo conectado.
Como instalar o ZooKeeper
Passo 1) Clique em Continuar para se inscrever
Vรก para isto link e clique em 'Continuar a se inscrever'
Passo 2) Aceitar Termos e Condiรงรตes
Na prรณxima pรกgina, Aceite o Contrato de Licenรงa
Passo 3) Mensagem de agradecimento mostrada
Vocรช verรก a seguinte mensagem
Passo 4) Clique em Continuar para configurar
Atualize a pรกgina apรณs 5 minutos e prossiga para a configuraรงรฃo
Passo 5) Clique em 'Continuar para lanรงar'
Na prรณxima tela, inicie o ZooKeeper
Passo 6) Parabรฉns!
Vocรช terminou!
Aplicativos Apache ZooKeeper
Apache Zookeeper usado para os seguintes propรณsitos:
- Gerenciando a configuraรงรฃo
- Serviรงos de nomeaรงรฃo
- Escolhendo o lรญder
- Enfileirando as mensagens
- Gerenciando o sistema de notificaรงรฃo
- Synchronizaรงรฃo
- Distribuรญdo Cluster e Autรดnoma
Empresas que usam o Zookeeper
- Yahoo
- eBay
- Netflix
- Zynga
- Nutanix
Desvantagens de usar o Zookeeper
- Pode ocorrer perda de dados se vocรช estiver adicionando novos servidores Zookeeper
- Nenhuma migraรงรฃo permitida para usuรกrios
- Nรฃo oferecer suporte para posicionamento e conscientizaรงรฃo do Rack
- O Zookeeper nรฃo permite reduzir o nรบmero de pods para evitar perda acidental de dados
- Nรฃo รฉ possรญvel mudar o serviรงo para hospedar a rede sem uma reinstalaรงรฃo completa quando o serviรงo รฉ implantado em uma rede virtual
- O serviรงo nรฃo oferece suporte ร alteraรงรฃo dos requisitos de volume apรณs o tรฉrmino da implantaรงรฃo inicial
- Hรก um grande nรบmero de nรณs envolvidos, portanto pode haver mais de um ponto de falha
- As mensagens podem ser perdidas na rede de comunicaรงรฃo, o que requer software especial para recuperรก-las novamente
Resumo
- Um aplicativo distribuรญdo รฉ um aplicativo que pode ser executado em vรกrios sistemas em uma rede
- Apache Zookeeper รฉ um serviรงo de coordenaรงรฃo distribuรญda de cรณdigo aberto que ajuda a gerenciar um grande conjunto de hosts
- Permite exclusรฃo mรบtua e cooperaรงรฃo entre processos de servidor
- Servidor, Cliente, Lรญder, Seguidor, Conjunto/Cluster, ZooKeeper WebUI sรฃo componentes importantes do zookeeper
- Trรชs tipos de Znodes sรฃo Persistรชncia, Efรชmero e Sequencial
- A observaรงรฃo ZDM รฉ um gatilho รบnico que รฉ enviado ao cliente que configurou a observaรงรฃo. Ocorreu quando os dados desse relรณgio foram alterados
- Zookeeper Hadoop usa ACLs para controlar o acesso aos seus znodes
- Gerenciando a configuraรงรฃo, Nomeando serviรงos., Selecionando o lรญder, Enfileirando as mensagens, Gerenciando o sistema de notificaรงรฃo, Synccronizaรงรฃo, distribuรญda Cluster Gestรฃo, etc
- Yahoo, Facebook, eBay, Twitter, Netflix algumas empresas conhecidas usam o zookeeper
- A principal desvantagem da ferramenta รฉ que pode ocorrer perda se vocรช adicionar novos servidores Zookeeper





