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
Archiarquitetura do ZooKeeper
Archiarquitetura do ZooKeeper

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 do Zookeeper
Modelo de dados do 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

ZKS โ€“ Estados de Sessรฃo
ZKS โ€“ Estados de Sessรฃo
  • 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'

Instale o ZooKeeper

Passo 2) Aceitar Termos e Condiรงรตes
Na prรณxima pรกgina, Aceite o Contrato de Licenรงa

Instale o ZooKeeper

Passo 3) Mensagem de agradecimento mostrada
Vocรช verรก a seguinte mensagem

Instale o ZooKeeper

Passo 4) Clique em Continuar para configurar
Atualize a pรกgina apรณs 5 minutos e prossiga para a configuraรงรฃo

Instale o ZooKeeper

Passo 5) Clique em 'Continuar para lanรงar'
Na prรณxima tela, inicie o ZooKeeper

Instale 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
  • Facebook
  • eBay
  • Twitter
  • 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

Resuma esta postagem com: