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

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 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ศฤ

- ร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โ
Pas 2) Acceptaศi Termenii ศi Condiศiile
รn pagina urmฤtoare, Acceptaศi acordul de licenศฤ
Pas 3) Mesaj de mulศumire afiศat
Veศi vedea urmฤtorul mesaj
Pas 4) Faceศi clic pe Continuare pentru a configura
Reรฎmprospฤtaศi pagina dupฤ 5 minute ศi continuaศi pentru configurare
Pas 5) Faceศi clic pe โContinuaศi pentru a lansaโ
รn ecranul urmฤtor, lansaศ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
- eBay
- 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





