Tutorial ZooKeeper

Ce este un sistem distribuit?

O aplicaศ›ie distribuitฤƒ este o aplicaศ›ie care poate rula pe mai multe sisteme dintr-o reศ›ea. Funcศ›ioneazฤƒ simultan prin coordonarea ei รฎnศ™iศ™i pentru a รฎndeplini o anumitฤƒ sarcinฤƒ. Aceste sarcini pot dura multe ore pentru a fi finalizate de cฤƒtre orice aplicaศ›ie nedistribuitฤƒ.

Ce este Zookeeper?

Apache Zookeeper este un serviciu de coordonare distribuit cu sursฤƒ deschisฤƒ care ajutฤƒ la gestionarea unui set mare de gazde. Managementul ศ™i coordonarea รฎntr-un mediu distribuit este dificil. Zookeeper automatizeazฤƒ acest proces ศ™i permite dezvoltatorilor sฤƒ se concentreze pe construirea de caracteristici software, mai degrabฤƒ decรขt sฤƒ se รฎngrijoreze de natura sa distribuitฤƒ.

Zookeeper vฤƒ ajutฤƒ sฤƒ menศ›ineศ›i informaศ›ii de configurare, denumire, servicii de grup pentru aplicaศ›iile distribuite. Implementeazฤƒ diferite protocoale pe cluster, astfel รฎncรขt aplicaศ›ia sฤƒ nu fie implementatฤƒ singurฤƒ. Oferฤƒ o singurฤƒ vedere coerentฤƒ a mai multor maศ™ini.

De ce Apache Zookeeper?

Iatฤƒ motivele importante din spatele popularitฤƒศ›ii Zookeeperului:

  • Permite excluderea reciprocฤƒ ศ™i cooperarea รฎntre procesele serverului
  • Acesta asigurฤƒ cฤƒ aplicaศ›ia dumneavoastrฤƒ ruleazฤƒ รฎn mod constant.
  • Procesul de tranzacศ›ie nu este niciodatฤƒ finalizat parศ›ial. I se acordฤƒ fie statutul de succes, fie eศ™ec. Starea distribuitฤƒ poate fi opritฤƒ, dar nu este niciodatฤƒ greศ™itฤƒ
  • Indiferent de serverul la care se conecteazฤƒ, un client va putea vedea aceeaศ™i vizualizare a serviciului
  • Vฤƒ ajutฤƒ sฤƒ codificaศ›i datele conform setului specific de reguli
  • Ajutฤƒ la menศ›inerea unui spaศ›iu de nume ierarhic standard similar fiศ™ierelor ศ™i directoarelor
  • Calculatoare, care ruleazฤƒ ca un singur sistem care poate fi conectat local sau geografic
  • Permite alฤƒturarea/pฤƒrฤƒsirea nodului รฎntr-un cluster ศ™i starea nodului รฎn timp real
  • Puteศ›i creศ™te performanศ›a prin implementarea mai multor maศ™ini
  • Vฤƒ permite sฤƒ alegeศ›i un nod ca lider pentru o mai bunฤƒ coordonare
  • ZooKeeper funcศ›ioneazฤƒ rapid cu sarcini de lucru รฎn care citirile datelor sunt mai frecvente decรขt scrierile

Ingrijitor zoo Architecturฤƒ: Cum funcศ›ioneazฤƒ?

Iatฤƒ o scurtฤƒ explicaศ›ie despre Apache Arhitectura zookeeper:

  • Zookeeper urmeazฤƒ un client-server Architecturฤƒ
  • Toate sistemele stocheazฤƒ o copie a datelor
  • Liderii sunt aleศ™i la pornire
Architectura ZooKeeper
Architectura ZooKeeper

Server: Serverul trimite o confirmare cรขnd se conecteazฤƒ orice client. รŽn cazul รฎn care nu existฤƒ niciun rฤƒspuns de la serverul conectat, clientul redirecศ›ioneazฤƒ automat mesajul cฤƒtre un alt server.

Client: Clientul este unul dintre nodurile din clusterul de aplicaศ›ii distribuite. Vฤƒ ajutฤƒ sฤƒ accesaศ›i informaศ›iile de pe server. Fiecare client trimite un mesaj cฤƒtre server la intervale regulate care รฎl ajutฤƒ pe server sฤƒ ศ™tie cฤƒ clientul este รฎn viaศ›ฤƒ.

Lider: Unul dintre servere este desemnat Lider. Oferฤƒ toate informaศ›iile clienศ›ilor, precum ศ™i o confirmare cฤƒ serverul este viu. Ar efectua recuperarea automatฤƒ dacฤƒ oricare dintre nodurile conectate ar eศ™ua.

Adept: Nodul server care urmeazฤƒ instrucศ›iunile liderului se numeศ™te adept.

  • Solicitฤƒrile de citire ale clientului sunt gestionate de serverul Zookeeper conectat corespunzฤƒtor
  • Clientul scrie cererile sunt gestionate de cฤƒtre liderul Zookeeper.

Ansamblu/Cluster: Grup de servere Zookeeper care se numeศ™te ansamblu sau a Cluster. Puteศ›i utiliza infrastructura ZooKeeper รฎn modul cluster pentru a avea sistemul la valoarea optimฤƒ atunci cรขnd rulaศ›i Apache.

ZooKeeper WebUI: Dacฤƒ doriศ›i sฤƒ lucraศ›i cu gestionarea resurselor ZooKeeper, atunci trebuie sฤƒ utilizaศ›i WebUI. Permite lucrul cu ZooKeeper folosind interfaศ›a cu utilizatorul web, รฎn โ€‹โ€‹loc sฤƒ utilizeze linia de comandฤƒ. Oferฤƒ o comunicare rapidฤƒ ศ™i eficientฤƒ cu aplicaศ›ia ZooKeeper.

Modelul de date Zookeeper (ZDM)

Acum, รฎn acest tutorial ZooKeeper, sฤƒ รฎnvฤƒศ›ฤƒm despre Modelul de date Zookeeper. Figura de mai jos explicฤƒ modelul de date Apache Zookeeper:

Modelul de date Zookeeper
Modelul de date Zookeeper
  • Modelul de date zookeeper urmeazฤƒ un spaศ›iu de nume ierarhic รฎn care fiecare nod este numit ZNode. Un nod este un sistem รฎn care ruleazฤƒ clusterul.
  • Fiecare ZNode are date. Poate avea sau nu copii
  • Cฤƒile ZNode:
    • Canonic, slash-separat ศ™i absolut
    • Nu utilizaศ›i referinศ›e relative
    • Numele pot avea caractere Unicode
  • ZNode menศ›ine structura statisticฤƒ ศ™i numฤƒrul versiunii pentru modificฤƒrile datelor.

Tipuri de noduri Zookeeper

Existฤƒ trei tipuri de Znodes:

Persistenศ›ฤƒ znode: Acest tip de znode este activ chiar ศ™i dupฤƒ ce clientul care a creat acel znode specific este deconectat. รŽn mod implicit, รฎn zookeeper, toate nodurile sunt persistente dacฤƒ nu este specificat.

efemer znode: Acest tip de zookeeper znode sunt รฎn viaศ›ฤƒ pรขnฤƒ cรขnd clientul este รฎn viaศ›ฤƒ. Prin urmare, atunci cรขnd clientul primeศ™te o deconectare de la grฤƒdina zoologicฤƒ, aceasta va fi, de asemenea, ศ™tearsฤƒ. Mai mult decรขt atรขt, nodurile efemere nu au voie sฤƒ aibฤƒ copii.

secvenศ›ialฤƒ znode: nodurile znode secvenลฃiale pot fi fie efemere, fie persistente. Deci, atunci cรขnd un nou znode este creat ca un znode secvenลฃial. Puteศ›i atribui calea nodului znod ataศ™รขnd un numฤƒr de secvenศ›ฤƒ de 10 cifre la numele original.

ZDM- Ceasuri

Zookeeper, un eveniment de ceas este un declanศ™ator unic care este trimis clientului care a setat ceasul. A avut loc atunci cรขnd datele de la acel ceas se modificฤƒ. ZDM watch permite clienศ›ilor sฤƒ primeascฤƒ notificฤƒri atunci cรขnd znode se schimbฤƒ. Operaศ›iile de citire ZDM precum getData(), getChidleren(), existฤƒ au opศ›iunea de a seta un ceas.

Ceasurile sunt comandate, ordinea evenimentelor ceasului corespunde cu ordinea actualizฤƒrilor. Un client va putea vedea un eveniment de urmฤƒrire pentru znode รฎnainte de a vedea noile date care corespund acelui znode.

ZDM- Lista de control al accesului

Zookeeper foloseศ™te ACL-uri pentru a controla accesul la nodurile sale. ACL este alcฤƒtuit dintr-o pereche de (Schema: id, permisiunea)

Construiศ›i รฎn scheme ACL:

lume: are un singur id, oricine

auth: Nu utilizaศ›i niciun id, reprezintฤƒ orice utilizator autentificat

digest: utilizaศ›i un nume de utilizator: parolฤƒ

gazdฤƒ: Vฤƒ permite sฤƒ utilizaศ›i numele de gazdฤƒ al clientului ca identitate ACL ID

IP: utilizaศ›i adresa IP a gazdei client ca identitate ACL ID

Permisiuni ACL:

  • CREATE
  • CITIT
  • SCRIE
  • DELETE
  • ADMIN

Ex (IP: 192.168.0.0/16, CITEศ˜TE)

ZKS โ€“ Stฤƒri de sesiune ศ™i durata de viaศ›ฤƒ

ZKS โ€“ Statele de sesiune
ZKS โ€“ Statele de sesiune
  • รŽnainte de a executa orice cerere, este important ca clientul sฤƒ stabileascฤƒ o sesiune cu service
  • Toate operaศ›iunile clienศ›ilor trimiศ™i la service sunt asociate automat cu o sesiune
  • Clientul se poate conecta la orice server din cluster. Dar se va conecta doar la un singur server
  • Sesiunea oferฤƒ โ€žgaranศ›ii de comandฤƒโ€. Solicitฤƒrile din sesiune sunt executate รฎn ordine FIFO
  • Principalele stฤƒri pentru o sesiune sunt 1) Conectat, 2) Conectat 3) รŽnchis 4) Neconectat.

Cum se instaleazฤƒ ZooKeeper

Pas 1) Faceศ›i clic pe Continuaศ›i pentru abonare
Du-te la asta legฤƒturฤƒ ศ™i faceศ›i clic pe โ€žContinuaศ›i sฤƒ vฤƒ abonaศ›iโ€

Instalaศ›i ZooKeeper

Pas 2) Acceptaศ›i Termenii ศ™i Condiศ›iile
รŽn pagina urmฤƒtoare, Acceptaศ›i acordul de licenศ›ฤƒ

Instalaศ›i ZooKeeper

Pas 3) Mesaj de mulศ›umire afiศ™at
Veศ›i vedea urmฤƒtorul mesaj

Instalaศ›i ZooKeeper

Pas 4) Faceศ›i clic pe Continuare pentru a configura
Reรฎmprospฤƒtaศ›i pagina dupฤƒ 5 minute ศ™i continuaศ›i pentru configurare

Instalaศ›i ZooKeeper

Pas 5) Faceศ›i clic pe โ€žContinuaศ›i pentru a lansaโ€
รŽn ecranul urmฤƒtor, lansaศ›i ZooKeeper

Instalaศ›i ZooKeeper

Pas 6) Felicitฤƒri!
Esti gata!

Aplicaศ›ii Apache ZooKeeper

Apache Zookeeper utilizat รฎn urmฤƒtoarele scopuri:

  • Gestionarea configuraศ›iei
  • Servicii de denumire
  • Alegerea liderului
  • Pune รฎn coadฤƒ mesajele
  • Gestionarea sistemului de notificare
  • Synchronizare
  • distribuit Cluster Management

Companii care folosesc Zookeeper

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Dezavantajele utilizฤƒrii Zookeeper

  • Pierderea datelor poate apฤƒrea dacฤƒ adฤƒugaศ›i noi servere Zookeeper
  • Nu este permisฤƒ migrarea utilizatorilor
  • Nu oferฤƒ suport pentru plasarea Rack-ului ศ™i conศ™tientizarea
  • Zookeeper nu vฤƒ permite sฤƒ reduceศ›i numฤƒrul de poduri pentru a preveni pierderea accidentalฤƒ a datelor
  • Nu puteศ›i comuta serviciul รฎn reศ›ea gazdฤƒ fฤƒrฤƒ o reinstalare completฤƒ atunci cรขnd serviciul este implementat รฎntr-o reศ›ea virtualฤƒ
  • Serviciul nu acceptฤƒ modificarea cerinศ›elor de volum odatฤƒ ce implementarea iniศ›ialฤƒ s-a รฎncheiat
  • Existฤƒ un numฤƒr mare de noduri implicate, astfel รฎncรขt ar putea exista mai multe puncte de defecศ›iune
  • Mesajele se pot pierde รฎn reศ›eaua de comunicaศ›ii, care necesitฤƒ un software special pentru a le recupera din nou

Rezumat

  • O aplicaศ›ie distribuitฤƒ este o aplicaศ›ie care poate rula pe mai multe sisteme dintr-o reศ›ea
  • Apache Zookeeper este un serviciu de coordonare distribuit cu sursฤƒ deschisฤƒ care vฤƒ ajutฤƒ sฤƒ gestionaศ›i un set mare de gazde
  • Permite excluderea reciprocฤƒ ศ™i cooperarea รฎntre procesele serverului
  • Server, client, lider, urmฤƒritor, ansamblu/Cluster, ZooKeeper WebUI sunt componente importante pentru zookeeper
  • Trei tipuri de Znodes sunt persistente, efemere ศ™i secvenศ›iale
  • Ceasul ZDM este un declanศ™ator unic care este trimis clientului care a setat ceasul. A avut loc atunci cรขnd datele de la acel ceas se modificฤƒ
  • Zookeeper Hadoop foloseศ™te ACL-uri pentru a controla accesul la nodurile sale
  • Gestionarea configuraศ›iei, Servicii de denumire, selectarea liderului, Aศ™ezarea mesajelor รฎn coadฤƒ, Gestionarea sistemului de notificare, Synchronizare, Distribuit Cluster Management, etc.
  • Yahoo, Facebook, eBay, Twitter, Netflix sunt unele companii cunoscute care folosesc zookeeper
  • Principalul dezavantaj al instrumentului este cฤƒ poate apฤƒrea pierderea dacฤƒ adฤƒugaศ›i noi servere Zookeeper

Rezumaศ›i aceastฤƒ postare cu: