logo

Kas ir Apache ZooKeeper?

Zoodārza sargs ir izplatīts, atvērtā koda koordinācijas pakalpojums izplatītām lietojumprogrammām. Tas atklāj vienkāršu primitīvu kopu, lai ieviestu augstāka līmeņa pakalpojumus sinhronizācijai, konfigurācijas uzturēšanai un grupu un nosaukumu piešķiršanai.

Sadalītā sistēmā ir vairāki mezgli vai mašīnas, kurām ir jāsazinās vienam ar otru un jākoordinē savas darbības. ZooKeeper nodrošina veidu, kā nodrošināt, ka šie mezgli ir informēti viens par otru un var koordinēt savas darbības. Tas tiek darīts, uzturot datu mezglu hierarhisku koku Znodes , ko var izmantot datu glabāšanai un izgūšanai un stāvokļa informācijas uzturēšanai. ZooKeeper nodrošina primitīvu kopu, piemēram, slēdzenes, barjeras un rindas, ko var izmantot, lai koordinētu mezglu darbības sadalītā sistēmā. Tas nodrošina arī tādas funkcijas kā līdera ievēlēšana, kļūmjpārlēce un atkopšana, kas var palīdzēt nodrošināt sistēmas noturību pret kļūmēm. ZooKeeper tiek plaši izmantots izplatītajās sistēmās, piemēram, Hadoop, Kafka un HBase, un tā ir kļuvusi par būtisku daudzu izplatītu lietojumprogrammu sastāvdaļu.



Kāpēc mums tas ir vajadzīgs?

  • Koordinācijas pakalpojumi : pakalpojumu integrācija/komunikācija sadalītā vidē.
  • Koordinācijas pakalpojumi ir sarežģīti, lai tie būtu pareizi. Tie ir īpaši pakļauti kļūdām, piemēram, sacensību apstākļiem un strupceļam.
  • Sacensību stāvoklis -Divas vai vairākas sistēmas, kas mēģina veikt kādu uzdevumu.
  • Strupceļi – Viena otru gaida divas vai vairākas operācijas.
  • Lai atvieglotu koordināciju starp izplatītajām vidēm, izstrādātāji nāca klajā ar ideju, ko sauc par zookeeper, lai viņiem nebūtu jāatbrīvo izplatītās lietojumprogrammas no atbildības par koordinācijas pakalpojumu ieviešanu no nulles.

Kas ir sadalītā sistēma?

  • Vairākas datorsistēmas strādā pie vienas problēmas.
  • Tas ir tīkls, kas sastāv no autonomiem datoriem, kas ir savienoti, izmantojot izplatītu starpprogrammatūru.
  • Galvenās iezīmes : Vienlaicīga, resursu koplietošana, neatkarīga, globāla, lielāka kļūdu tolerance un cenas/veiktspējas attiecība ir daudz labāka.
  • Galvenais mērķis s: caurspīdīgums, uzticamība, veiktspēja, mērogojamība.
  • Izaicinājumi : drošība, kļūda, koordinācija un resursu koplietošana.

Koordinācijas izaicinājums

  • Kāpēc koordinācija sadalītā sistēmā ir sarežģīta problēma?
  • Koordinācijas vai konfigurācijas pārvaldība izplatītai lietojumprogrammai, kurai ir daudz sistēmu.
  • Galvenais mezgls, kurā tiek glabāti klastera dati.
  • Darbinieku mezgli vai vergu mezgli iegūst datus no šī galvenā mezgla.
  • viens neveiksmes punkts.
  • sinhronizācija nav vienkārša.
  • Nepieciešama rūpīga projektēšana un ieviešana.

Apache zoodārza sargs

Apache Zookeeper ir izplatīts, atvērtā koda koordinācijas pakalpojums izplatītajām sistēmām. Tā nodrošina centrālu vietu izplatītajām lietojumprogrammām datu glabāšanai, savstarpējai saziņai un darbību koordinēšanai. Zookeeper tiek izmantots sadalītās sistēmās, lai koordinētu sadalītos procesus un pakalpojumus. Tas nodrošina vienkāršu, kokā strukturētu datu modeli, vienkāršu API un izplatītu protokolu, lai nodrošinātu datu konsekvenci un pieejamību. Zookeeper ir izstrādāts tā, lai tas būtu ļoti uzticams un izturīgs pret kļūmēm, un tas spēj apstrādāt augstu lasīšanas un rakstīšanas caurlaidspēju.

Zookeeper ir ieviests Java un tiek plaši izmantots izplatītajās sistēmās, īpaši Hadoop ekosistēmā. Tas ir Apache Software Foundation projekts un tiek izlaists saskaņā ar Apache licenci 2.0.

Zoodārza apsaimniekotāja arhitektūra

Zoodārza apsaimniekotāja pakalpojumi

Zoodārza apsaimniekotāja pakalpojumi



ZooKeeper arhitektūra sastāv no mezglu hierarhijas, ko sauc par znodes, kas sakārtoti kokam līdzīgā struktūrā. Katrs znode var uzglabāt datus, un tam ir atļauju kopa, kas kontrolē piekļuvi znode. Znodes ir sakārtotas hierarhiskā nosaukumvietā, līdzīgi kā failu sistēma. Hierarhijas saknē atrodas saknes znode, un visi pārējie znode ir saknes znode bērni. Hierarhija ir līdzīga failu sistēmas hierarhijai, kur katrai znodei var būt bērni un mazbērni utt.

Svarīgas Zookeeper sastāvdaļas

ZooKeeper pakalpojumi

ZooKeeper pakalpojumi

  • Līderis un sekotājs
  • Pieprasījuma apstrādātājs – Aktīvs Leader Node un ir atbildīgs par rakstīšanas pieprasījumu apstrādi. Pēc apstrādes tas nosūta izmaiņas sekotāju mezgliem
  • Atomu raidījums - atrodas gan līdermezglos, gan sekotāju mezglos. Tā ir atbildīga par izmaiņu nosūtīšanu citiem mezgliem.
  • Atmiņas datu bāzes (Replicētas datu bāzes) — tā ir atbildīga par datu glabāšanu zoodārzā. Katrs mezgls satur savas datu bāzes. Dati tiek ierakstīti arī failu sistēmā, nodrošinot atkopšanu, ja rodas problēmas ar klasteru.

Citas sastāvdaļas

  • Klients - Viens no mezgliem mūsu izplatītajā lietojumprogrammu klasterī. Piekļūstiet informācijai no servera. Katrs klients nosūta serverim ziņojumu, lai tas zinātu, ka klients ir dzīvs.
  • Serveris – Sniedz klientam visus pakalpojumus. Sniedz klientam atzinību.
  • Ansamblis - Zookeeper serveru grupa. Minimālais mezglu skaits, kas nepieciešams, lai izveidotu ansambli, ir 3.

Zoodārza apsaimniekotāja datu modelis

ZooKeeper datu modelis

ZooKeeper datu modelis



Programmā Zookeeper dati tiek glabāti hierarhiskā nosaukumvietā, līdzīgi kā failu sistēmā. Katrs mezgls nosaukumvietā tiek saukts par Znode, un tas var uzglabāt datus un radīt bērnus. Znodes ir līdzīgas failiem un direktorijiem failu sistēmā. Zookeeper nodrošina vienkāršu API Znodes izveidei, lasīšanai, rakstīšanai un dzēšanai. Tas nodrošina arī mehānismus, lai noteiktu izmaiņas Znodes saglabātajos datos, piemēram, pulksteņos un trigeros. Znodes uztur statistikas struktūru, kas ietver: versijas numuru, ACL, laikspiedolu, datu garumu

Znodu veidi :

  • Noturība : dzīvs, līdz tie tiek skaidri izdzēsti.
  • Īslaicīga : Aktīvs, līdz klienta savienojums ir aktīvs.
  • Secīgi : vai nu noturīgs, vai īslaicīgs.

Kāpēc mums Hadoop ir nepieciešams ZooKeeper?

Zookeeper tiek izmantots, lai pārvaldītu un koordinētu Hadoop klastera mezglus, tostarp NameNode, DataNode un ResourceManager. Hadoop klasterī Zookeeper palīdz:

  • Konfigurācijas informācijas uzturēšana: Zookeeper saglabā Hadoop klastera konfigurācijas informāciju, tostarp NameNode, DataNode un ResourceManager atrašanās vietu.
  • Pārvaldiet klastera stāvokli: Zookeeper izseko Hadoop klastera mezglu stāvokli un to var izmantot, lai noteiktu, kad mezgls ir atteicies vai kļuvis nepieejams.
  • Izkliedēto procesu koordinēšana: Zookeeper var izmantot, lai koordinētu sadalītos procesus, piemēram, darbu plānošanu un resursu piešķiršanu Hadoop klastera mezglos.

Zookeeper palīdz nodrošināt Hadoop klastera pieejamību un uzticamību, nodrošinot centrālo koordinācijas pakalpojumu klastera mezgliem.

Kā darbojas ZooKeeper pakalpojumā Hadoop?

ZooKeeper darbojas kā izplatīta failu sistēma un atklāj vienkāršu API kopu, kas ļauj klientiem lasīt un rakstīt datus failu sistēmā. Tas saglabā savus datus kokam līdzīgā struktūrā, ko sauc par znode, ko var uzskatīt par failu vai direktoriju tradicionālajā failu sistēmā. ZooKeeper izmanto vienprātības algoritmu, lai nodrošinātu, ka visiem tā serveriem ir konsekvents skatījums uz Znodes saglabātajiem datiem. Tas nozīmē, ka, ja klients ieraksta datus znode, šie dati tiks replicēti visos citos ZooKeeper ansambļa serveros.

Viena svarīga ZooKeeper iezīme ir tā spēja atbalstīt pulksteņa jēdzienu. Pulkstenis ļauj klientam reģistrēties paziņojumu saņemšanai, kad mainās znode saglabātie dati. Tas var būt noderīgi, lai uzraudzītu ZooKeeper saglabāto datu izmaiņas un reaģētu uz šīm izmaiņām izplatītajā sistēmā.

Pakalpojumā Hadoop ZooKeeper tiek izmantots dažādiem mērķiem, tostarp:

  • Konfigurācijas informācijas glabāšana: ZooKeeper tiek izmantots, lai saglabātu konfigurācijas informāciju, ko koplieto vairāki Hadoop komponenti. Piemēram, to var izmantot, lai saglabātu NameNodes atrašanās vietas Hadoop klasterī vai JobTracker mezglu adreses.
  • Izkliedētās sinhronizācijas nodrošināšana: ZooKeeper tiek izmantots, lai koordinētu dažādu Hadoop komponentu darbības un nodrošinātu to konsekventu sadarbību. Piemēram, to var izmantot, lai nodrošinātu, ka Hadoop klasterī vienlaikus ir aktīvs tikai viens NameNode.
  • Nosaukšanas uzturēšana: ZooKeeper tiek izmantots, lai uzturētu centralizētu nosaukumu piešķiršanas pakalpojumu Hadoop komponentiem. Tas var būt noderīgi, lai identificētu un atrastu resursus izplatītajā sistēmā.

ZooKeeper ir būtiska Hadoop sastāvdaļa, un tai ir izšķiroša loma tās dažādo apakškomponentu darbības koordinēšanā.

Lasīšana un rakstīšana Apache Zookeeper

ZooKeeper nodrošina vienkāršu un uzticamu saskarni datu lasīšanai un rakstīšanai. Dati tiek glabāti hierarhiskā nosaukumvietā, kas ir līdzīga failu sistēmai, ar mezgliem, ko sauc par znodes. Katrs znode var glabāt datus un izveidot bērnu znodes. ZooKeeper klienti var lasīt un rakstīt datus šajos znodes, izmantojot attiecīgi getData () un setData () metodes. Šeit ir piemērs datu lasīšanai un rakstīšanai, izmantojot ZooKeeper Java API:

Java




// Connect to the ZooKeeper ensemble> ZooKeeper zk =>new> ZooKeeper(>'localhost:2181'>,>3000>,>null>);> // Write data to the znode '/myZnode'> String path =>'/myZnode'>;> String data =>'hello world'>;> zk.create(path, data.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);> // Read data from the znode '/myZnode'> byte>[] bytes = zk.getData(path,>false>,>null>);> String readData =>new> String(bytes);> // Prints 'hello world'> System.out.println(readData);> // Closing the connection> // to the ZooKeeper ensemble> zk.close();>

>

>

Python3




from> kazoo.client>import> KazooClient> # Connect to ZooKeeper> zk>=> KazooClient(hosts>=>'localhost:2181'>)> zk.start()> # Create a node with some data> zk.ensure_path(>'/gfg_node'>)> zk.>set>(>'/gfg_node'>, b>'some_data'>)> # Read the data from the node> data, stat>=> zk.get(>'/gfg_node'>)> print>(data)> # Stop the connection to ZooKeeper> zk.stop()>

>

tipa mainīgie java

>

Sesija un pulksteņi

Sesija

  • Pieprasījumi sesijā tiek izpildīti FIFO secībā.
  • Kad sesija ir izveidota, tad sesijas ID tiek piešķirts klientam.
  • Klients sūta sirdspuksti lai sesija būtu derīga
  • sesijas noildze parasti tiek attēlota milisekundēs

Pulksteņi

  • Pulksteņi ir mehānismi, lai klienti saņemtu paziņojumus par izmaiņām Zookeeper
  • Klients var skatīties, lasot konkrētu znode.
  • Zmezglu izmaiņas ir datu modifikācijas, kas saistītas ar znode vai znode atvasinājumu izmaiņas.
  • Pulksteņi tiek aktivizēti tikai vienu reizi.
  • Ja sesija ir beidzies, tiek noņemti arī pulksteņi.