Mo daba pe ki o ka iwe afọwọkọ ti ikowe naa "Hadoop. ZooKeeper" lati inu jara "Awọn ọna fun pinpin pinpin ti awọn ipele nla ti data ni Hadoop"
Kini ZooKeeper, aaye rẹ ni ilolupo ilolupo Hadoop. Untruths nipa pin iširo. Aworan atọka ti a boṣewa pin eto. Iṣoro ni ṣiṣakoṣo awọn ọna ṣiṣe pinpin. Awọn iṣoro iṣakojọpọ aṣoju. Awọn ilana lẹhin apẹrẹ ti ZooKeeper. ZooKeeper data awoṣe. znode awọn asia. Awọn akoko. API onibara. Awọn alakoko (iṣeto ni, ẹgbẹ ẹgbẹ, awọn titiipa ti o rọrun, idibo adari, titiipa laisi ipa agbo). ZooKeeper faaji. ZooKeeper DB. ZAB. Beere olutọju.


Loni a yoo sọrọ nipa ZooKeeper. Nkan yi wulo pupọ. O, bii eyikeyi ọja Apache Hadoop, ni aami kan. O ṣe apejuwe ọkunrin kan.
Ṣaaju ki o to yi, a kun ti sọrọ nipa bi data le ti wa ni ilọsiwaju nibẹ, bi o si fi o, ti o ni, bi o lati lo o bakan ati ki o ṣiṣẹ pẹlu awọn ti o bakan. Ati loni Emi yoo fẹ lati sọrọ diẹ nipa kikọ awọn ohun elo pinpin. Ati ZooKeeper jẹ ọkan ninu awọn nkan wọnyẹn ti o fun ọ laaye lati ṣe irọrun ọrọ yii. Eyi jẹ iru iṣẹ kan ti a pinnu fun diẹ ninu iru isọdọkan ti ibaraenisepo ti awọn ilana ni awọn eto pinpin, ni awọn ohun elo pinpin.
Awọn iwulo fun iru awọn ohun elo ti n di siwaju ati siwaju sii lojoojumọ, iyẹn ni ohun ti ipa-ọna wa jẹ gbogbo nipa. Ni ọna kan, MapReduce ati ilana ti a ti ṣetan gba ọ laaye lati ṣe ipele idiju yii ki o gba pirogirama kuro ni kikọ awọn alakoko gẹgẹbi ibaraenisepo ati isọdọkan awọn ilana. Ṣugbọn ni apa keji, ko si ẹnikan ti o ṣe idaniloju pe eyi kii yoo ni lati ṣee lonakona. MapReduce tabi awọn ilana miiran ti o ti ṣetan ko nigbagbogbo rọpo awọn igba miiran ti ko le ṣe imuse nipa lilo eyi. Pẹlu MapReduce funrararẹ ati opo kan ti awọn iṣẹ akanṣe Apache miiran; Ati lati jẹ ki kikọ rọrun, wọn kọ ZooKeeper.
Bii gbogbo awọn ohun elo ti o jọmọ Hadoop, Yahoo! O tun jẹ ohun elo Apache ni bayi. O ti wa ni ko bi actively ni idagbasoke bi HBase. Ti o ba lọ si JIRA HBase, lẹhinna ni gbogbo ọjọ awọn ijabọ bug kan wa, opo kan ti awọn igbero lati mu nkan dara, ie igbesi aye ninu iṣẹ naa n tẹsiwaju nigbagbogbo. Ati ZooKeeper, ni apa kan, jẹ ọja ti o rọrun, ati ni apa keji, eyi ṣe idaniloju igbẹkẹle rẹ. Ati pe o rọrun pupọ lati lo, eyiti o jẹ idi ti o ti di boṣewa ni awọn ohun elo laarin ilolupo Hadoop. Nitorinaa Mo ro pe yoo wulo lati ṣe atunyẹwo rẹ lati loye bi o ṣe n ṣiṣẹ ati bi o ṣe le lo.

Eyi jẹ aworan lati diẹ ninu awọn ikowe ti a ni. A le sọ pe o jẹ orthogonal si ohun gbogbo ti a ti gbero titi di isisiyi. Ati pe ohun gbogbo ti o tọka si nibi, si iwọn kan tabi omiiran, ṣiṣẹ pẹlu ZooKeeper, ie, o jẹ iṣẹ ti o lo gbogbo awọn ọja wọnyi. Bẹni HDFS tabi MapReduce kọ awọn iṣẹ ti o jọra tiwọn ti yoo ṣiṣẹ ni pataki fun wọn. Nitorinaa, ZooKeeper ti lo. Ati pe eyi jẹ irọrun idagbasoke ati diẹ ninu awọn nkan ti o ni ibatan si awọn aṣiṣe.

Nibo ni gbogbo eyi ti wa? O dabi pe a ṣe ifilọlẹ awọn ohun elo meji ni afiwe lori awọn kọnputa oriṣiriṣi, so wọn pọ pẹlu okun tabi ni apapo, ati pe ohun gbogbo n ṣiṣẹ. Ṣugbọn iṣoro naa ni pe Nẹtiwọọki naa ko ni igbẹkẹle, ati pe ti o ba fa ijabọ tabi wo ohun ti n ṣẹlẹ nibẹ ni ipele kekere, bawo ni awọn alabara ṣe n ṣiṣẹ lori Nẹtiwọọki, o le rii nigbagbogbo pe diẹ ninu awọn apo-iwe ti sọnu tabi tun-firanṣẹ. Kii ṣe fun ohunkohun ti a ṣẹda awọn ilana TCP, eyiti o gba ọ laaye lati ṣeto igba kan ati iṣeduro ifijiṣẹ awọn ifiranṣẹ. Ṣugbọn ni eyikeyi ọran, paapaa TCP ko le fipamọ ọ nigbagbogbo. Ohun gbogbo ni akoko asiko. Nẹtiwọọki le jiroro ṣubu ni pipa fun igba diẹ. O le kan seju. Ati pe gbogbo eyi nyorisi otitọ pe o ko le gbekele Nẹtiwọọki jẹ igbẹkẹle. Eyi ni iyatọ akọkọ lati kikọ awọn ohun elo ti o jọra ti o nṣiṣẹ lori kọnputa kan tabi lori supercomputer kan, nibiti ko si Nẹtiwọọki, nibiti ọkọ akero paṣipaarọ data ti o ni igbẹkẹle diẹ sii wa ni iranti. Ati pe eyi jẹ iyatọ ipilẹ.
Lara awọn ohun miiran, nigba lilo Nẹtiwọọki, nigbagbogbo lairi kan wa. Disiki naa tun ni, ṣugbọn Nẹtiwọọki naa ni diẹ sii ninu rẹ. Lairi jẹ diẹ ninu akoko idaduro, eyiti o le jẹ boya kekere tabi pataki pupọ.
Topology nẹtiwọki n yipada. Kini topology - eyi ni gbigbe ohun elo nẹtiwọọki wa. Awọn ile-iṣẹ data wa, awọn agbeko wa ti o duro nibẹ, awọn abẹla wa. Gbogbo eyi le tun sopọ, gbe, bbl Eleyi gbogbo tun nilo lati wa ni ya sinu iroyin. Awọn orukọ IP yipada, ipa ọna nipasẹ eyiti awọn irin-ajo ijabọ wa yipada. Eyi tun nilo lati ṣe akiyesi.
Nẹtiwọọki le tun yipada ni awọn ofin ohun elo. Lati adaṣe, Mo le sọ pe awọn onimọ-ẹrọ nẹtiwọọki wa nifẹ gaan lati ṣe imudojuiwọn ohunkan lorekore lori awọn abẹla. Lojiji famuwia tuntun kan jade ati pe wọn ko nifẹ ni pataki ni diẹ ninu iṣupọ Hadoop. Wọn ni iṣẹ tiwọn. Fun wọn, ohun akọkọ ni pe Nẹtiwọọki n ṣiṣẹ. Nitorinaa, wọn fẹ lati tun gbe nkan kan sibẹ, ṣe ikosan lori ohun elo wọn, ati ohun elo tun yipada lorekore. Gbogbo eyi bakan nilo lati ṣe akiyesi. Gbogbo eyi ni ipa lori ohun elo ti a pin kaakiri.
Nigbagbogbo awọn eniyan ti o bẹrẹ ṣiṣẹ pẹlu awọn oye nla ti data fun idi kan gbagbọ pe Intanẹẹti ko ni opin. Ti faili kan ti awọn terabytes pupọ wa nibẹ, lẹhinna o le mu lọ si olupin tabi kọnputa ki o ṣii ni lilo o nran ati wiwo. Aṣiṣe miiran wa ninu Mo ti wá wo awọn akọọlẹ. Maṣe ṣe eyi nitori pe o buru. Nitori Vim n gbiyanju lati fi ohun gbogbo pamọ, gbe ohun gbogbo sinu iranti, ni pataki nigbati a bẹrẹ gbigbe nipasẹ log yii ati wiwa nkankan. Iwọnyi jẹ awọn nkan ti o gbagbe, ṣugbọn o tọ lati ronu.

O rọrun lati kọ eto kan ti o nṣiṣẹ lori kọnputa kan pẹlu ero isise kan.
Nigbati eto wa ba dagba, a fẹ lati ṣe afiwe gbogbo rẹ, ki o ṣe afiwe rẹ kii ṣe lori kọnputa nikan, ṣugbọn tun lori iṣupọ kan. Ibeere naa waye: bawo ni a ṣe le ṣatunṣe ọrọ yii? Awọn ohun elo wa ko le paapaa ṣe ajọṣepọ pẹlu ara wọn, ṣugbọn a ṣiṣẹ ọpọlọpọ awọn ilana ni afiwe lori awọn olupin pupọ. Ati bi o ṣe le ṣe atẹle pe ohun gbogbo n lọ daradara fun wọn? Fun apẹẹrẹ, wọn fi nkan ranṣẹ lori Intanẹẹti. Wọn gbọdọ kọ nipa ipo wọn ni ibikan, fun apẹẹrẹ, ni iru data data tabi log, lẹhinna ṣajọpọ akọọlẹ yii lẹhinna ṣe itupalẹ rẹ ni ibikan. Pẹlupẹlu, a nilo lati ṣe akiyesi pe ilana naa n ṣiṣẹ ati ṣiṣẹ, lojiji iru aṣiṣe kan han ninu rẹ tabi o kọlu, lẹhinna bawo ni kiakia yoo ṣe wa nipa rẹ?
O han gbangba pe gbogbo eyi le ṣe abojuto ni kiakia. Eyi tun dara, ṣugbọn ibojuwo jẹ ohun ti o lopin ti o fun ọ laaye lati ṣe atẹle awọn ohun kan ni ipele ti o ga julọ.
Nigba ti a ba fẹ ki awọn ilana wa bẹrẹ lati ni ibaraẹnisọrọ pẹlu ara wa, fun apẹẹrẹ, lati fi data kan ranṣẹ si ara wa, lẹhinna ibeere naa tun waye - bawo ni eyi yoo ṣe ṣẹlẹ? Njẹ iru ipo ere-ije kan yoo wa, wọn yoo tun kọ ara wọn silẹ, ṣe data naa yoo de ni deede, Njẹ ohunkohun yoo padanu ni ọna? A nilo lati ṣe agbekalẹ iru ilana kan, ati bẹbẹ lọ.
Iṣọkan ti gbogbo awọn ilana wọnyi kii ṣe nkan lasan. Ati pe o fi agbara mu olupilẹṣẹ lati lọ si isalẹ si ipele kekere paapaa, ati kọ awọn eto boya lati ibere, tabi kii ṣe lati ibere, ṣugbọn eyi kii ṣe rọrun.
Ti o ba wa pẹlu algorithm cryptographic tabi paapaa ṣe imuse rẹ, lẹhinna jabọ kuro lẹsẹkẹsẹ, nitori o ṣeeṣe julọ kii yoo ṣiṣẹ fun ọ. O ṣeese yoo ni opo awọn aṣiṣe ti o gbagbe lati pese fun. Maṣe lo fun ohunkohun to ṣe pataki nitori pe yoo ṣeese julọ jẹ riru. Nitoripe gbogbo awọn algoridimu ti o wa tẹlẹ ti ni idanwo nipasẹ akoko fun igba pipẹ pupọ. O ti wa ni bugged nipasẹ awọn awujo. Eyi jẹ koko-ọrọ ọtọtọ. Ati pe o jẹ kanna nibi. Ti o ba ṣee ṣe lati ma ṣe imuṣiṣẹpọ diẹ ninu awọn ilana imuṣiṣẹpọ funrararẹ, lẹhinna o dara lati ma ṣe eyi, nitori pe o jẹ idiju pupọ ati mu ọ lọ si ọna gbigbọn ti wiwa awọn aṣiṣe nigbagbogbo.
Loni a n sọrọ nipa ZooKeeper. Ni apa kan, o jẹ ilana, ni apa keji, o jẹ iṣẹ ti o jẹ ki igbesi aye rọrun fun olupilẹṣẹ ati simplifies imuse ti ọgbọn ati isọdọkan ti awọn ilana wa bi o ti ṣee.

Jẹ ki a ranti kini eto pinpin boṣewa le dabi. Eyi ni ohun ti a sọrọ nipa - HDFS, HBase. Ilana Titunto si wa ti o ṣakoso awọn oṣiṣẹ ati awọn ilana ẹrú. O jẹ iduro fun iṣakojọpọ ati pinpin awọn iṣẹ ṣiṣe, tun bẹrẹ awọn oṣiṣẹ, ifilọlẹ awọn tuntun, ati pinpin ẹru naa.

Ohun to ti ni ilọsiwaju diẹ sii ni Iṣẹ Iṣọkan, ie, gbe iṣẹ isọdọkan funrararẹ sinu ilana ti o yatọ, pẹlu ṣiṣe diẹ ninu iru afẹyinti tabi Titunto si imurasilẹ ni afiwe, nitori Titunto si le kuna. Ati pe ti Titunto ba ṣubu, lẹhinna eto wa ko ni ṣiṣẹ. A nṣiṣẹ afẹyinti. Diẹ ninu awọn ipinlẹ pe Titunto si nilo lati tun ṣe si afẹyinti. Eyi tun le fi le si Iṣẹ Iṣọkan. Ṣugbọn ninu aworan atọka yii, Titunto si tikararẹ jẹ iduro fun ṣiṣakoṣo awọn oṣiṣẹ nibi iṣẹ naa n ṣakoso awọn iṣẹ atunwi data.

Aṣayan ilọsiwaju diẹ sii ni nigbati gbogbo isọdọkan wa ni itọju nipasẹ iṣẹ wa, gẹgẹ bi a ti ṣe nigbagbogbo. O gba ojuse lati rii daju pe ohun gbogbo ṣiṣẹ. Ati pe ti nkan ko ba ṣiṣẹ, a wa nipa rẹ ati gbiyanju lati wa ni ayika ipo yii. Ni eyikeyi idiyele, a fi wa silẹ pẹlu Ọga kan ti o bakan pẹlu awọn ẹrú ati pe o le firanṣẹ data, alaye, awọn ifiranṣẹ, ati bẹbẹ lọ nipasẹ iṣẹ kan.

Eto eto ti o ni ilọsiwaju paapaa wa, nigbati a ko ba ni Ọga, gbogbo awọn apa jẹ ẹrú agba, yatọ si ni ihuwasi wọn. Ṣugbọn wọn tun nilo lati ṣe ajọṣepọ pẹlu ara wọn, nitorinaa iṣẹ kan tun wa lati ṣakojọpọ awọn iṣe wọnyi. Boya, Cassandra, ti o ṣiṣẹ lori ilana yii, baamu ero yii.
O soro lati sọ ewo ninu awọn ero wọnyi ti o ṣiṣẹ dara julọ. Kọọkan ni o ni awọn oniwe-ara Aleebu ati awọn konsi.

Ati pe ko si iwulo lati bẹru awọn nkan diẹ pẹlu Ọga naa, nitori, gẹgẹ bi iṣe ṣe fihan, ko ni ifaragba lati ṣiṣẹsin nigbagbogbo. Ohun akọkọ nibi ni lati yan ojutu ti o tọ fun gbigbalejo iṣẹ yii lori oju ipade ti o lagbara ti o yatọ, ki o ni awọn orisun to, ti o ba ṣeeṣe, awọn olumulo ko ni iwọle si nibẹ, ki wọn ma ṣe pa ilana yii lairotẹlẹ. Ṣugbọn ni akoko kanna, ni iru ero yii o rọrun pupọ lati ṣakoso awọn oṣiṣẹ lati ilana Titunto, ie ero yii rọrun lati oju-ọna ti imuse.

Ati pe ero yii (loke) ṣee ṣe eka sii, ṣugbọn igbẹkẹle diẹ sii.

Iṣoro akọkọ jẹ awọn ikuna apa kan. Fun apẹẹrẹ, nigba ti a ba fi ifiranṣẹ ranṣẹ lori Nẹtiwọọki, iru ijamba kan waye, ati pe ẹniti o fi ifiranṣẹ ranṣẹ kii yoo mọ boya ifiranṣẹ rẹ ti gba ati ohun ti o ṣẹlẹ ni ẹgbẹ olugba, kii yoo mọ boya ifiranṣẹ naa ti ni ilọsiwaju daradara. , ie o yoo ko gba eyikeyi ìmúdájú.
Nitorinaa, a gbọdọ ṣe ilana ipo yii. Ati pe ohun ti o rọrun julọ ni lati firanṣẹ ifiranṣẹ yii ki o duro titi ti a yoo fi gba esi kan. Ni idi eyi, a ko ṣe akiyesi boya ipo ti olugba ti yipada. A le fi ifiranṣẹ ranṣẹ ki o fi data kanna kun lẹẹmeji.
ZooKeeper nfunni ni awọn ọna lati koju iru awọn ijusilẹ, eyiti o tun jẹ ki igbesi aye wa rọrun.

Gẹgẹbi a ti sọ tẹlẹ diẹ sii, eyi jẹ iru si kikọ awọn eto ti o ni ọpọlọpọ-asapo, ṣugbọn iyatọ akọkọ ni pe ninu awọn ohun elo ti a pin ti a ṣe lori awọn ẹrọ oriṣiriṣi, ọna kan ṣoṣo lati ṣe ibaraẹnisọrọ ni Nẹtiwọọki. Ni pataki, eyi jẹ faaji pinpin-ko si nkankan. Ilana tabi iṣẹ kọọkan ti o nṣiṣẹ lori ẹrọ kan ni iranti tirẹ, disk tirẹ, ero isise tirẹ, eyiti ko pin pẹlu ẹnikẹni.
Ti a ba kọ eto olona-asapo lori kọnputa kan, lẹhinna a le lo iranti pinpin lati paarọ data. A ni iyipada ipo kan nibẹ, awọn ilana le yipada. Eyi ni ipa lori iṣẹ ṣiṣe. Ni apa kan, ko si iru nkan bẹ ninu eto lori iṣupọ, ṣugbọn awọn iṣoro wa pẹlu Nẹtiwọọki naa.

Nitorinaa, awọn iṣoro akọkọ ti o dide nigbati kikọ awọn eto pinpin jẹ iṣeto ni. A n kọ iru ohun elo kan. Ti o ba rọrun, lẹhinna a hardcode gbogbo iru awọn nọmba ninu koodu naa, ṣugbọn eyi ko ṣe aibalẹ, nitori ti a ba pinnu pe dipo akoko akoko ti idaji iṣẹju kan a fẹ akoko ti iṣẹju-aaya kan, lẹhinna a nilo lati tun ṣe ohun elo naa ati eerun ohun gbogbo jade lẹẹkansi. O jẹ ohun kan nigbati o ba wa lori ẹrọ kan, nigba ti o le tun bẹrẹ, ṣugbọn nigba ti a ba ni ọpọlọpọ awọn ẹrọ, a ni lati daakọ ohun gbogbo nigbagbogbo. A gbọdọ gbiyanju lati jẹ ki ohun elo tunto.
Nibi a n sọrọ nipa iṣeto aimi fun awọn ilana eto. Eyi kii ṣe patapata, boya lati oju wiwo ẹrọ ṣiṣe, o le jẹ atunto aimi fun awọn ilana wa, ie eyi ni iṣeto ni ti ko le mu nirọrun ati imudojuiwọn.
Wa ti tun kan ìmúdàgba iṣeto ni. Iwọnyi ni awọn aye ti a fẹ yipada lori fo ki wọn gbe wọn sibẹ.
Kini iṣoro nibi? A ṣe imudojuiwọn atunto, yiyi jade, nitorina kini? Iṣoro naa le jẹ pe ni apa kan a yiyi atunto, ṣugbọn gbagbe nipa nkan tuntun, atunto naa wa nibẹ. Ni ẹẹkeji, lakoko ti a n sẹsẹ, iṣeto ni imudojuiwọn ni awọn aaye kan, ṣugbọn kii ṣe ni awọn miiran. Ati diẹ ninu awọn ilana ti ohun elo wa ti o ṣiṣẹ lori ẹrọ kan ni a tun bẹrẹ pẹlu atunto tuntun, ati ibikan pẹlu ọkan atijọ. Eyi le ja si ohun elo ti a pin kaakiri jẹ aisedede lati irisi iṣeto ni. Iṣoro yii jẹ wọpọ. Fun kan ìmúdàgba iṣeto ni, o jẹ diẹ ti o yẹ nitori ti o tumo si wipe o le wa ni yipada lori awọn fly.
Iṣoro miiran jẹ ẹgbẹ ẹgbẹ. Nigbagbogbo a ni awọn oṣiṣẹ diẹ, a nigbagbogbo fẹ lati mọ tani ninu wọn ti o wa laaye, tani ninu wọn ti o ku. Ti Titunto si ba wa, lẹhinna o gbọdọ loye iru awọn oṣiṣẹ le ṣe darí si awọn alabara ki wọn ṣiṣẹ awọn iṣiro tabi ṣiṣẹ pẹlu data, ati eyiti ko le. Iṣoro ti o dide nigbagbogbo ni pe a nilo lati mọ ẹni ti n ṣiṣẹ ninu iṣupọ wa.
Iṣoro aṣoju miiran jẹ awọn idibo olori, nigba ti a fẹ lati mọ ẹniti o wa ni alakoso. Apeere kan jẹ ẹda, nigba ti a ni diẹ ninu ilana ti o gba awọn iṣẹ kikọ ati lẹhinna tun ṣe wọn laarin awọn ilana miiran. Oun ni yoo jẹ olori, gbogbo eniyan yoo gbọ tirẹ, yoo tẹle e. O jẹ dandan lati yan ilana kan ki o jẹ alaigbagbọ fun gbogbo eniyan, ki o má ba jade pe awọn olori meji ti yan.
Wa ti tun tosi iyasoto wiwọle. Iṣoro nibi jẹ eka sii. Iru nkan kan wa bi mutex, nigbati o ba kọ awọn eto ti o ni ọpọlọpọ-asapo ati fẹ iraye si diẹ ninu awọn orisun, fun apẹẹrẹ, sẹẹli iranti, lati ni opin ati gbejade nipasẹ okun kan ṣoṣo. Nibi awọn oluşewadi le jẹ nkankan diẹ áljẹbrà. Ati awọn ohun elo oriṣiriṣi lati awọn apa oriṣiriṣi ti Nẹtiwọọki wa yẹ ki o gba iwọle iyasoto si orisun ti a fun, kii ṣe ki gbogbo eniyan le yipada tabi kọ nkan nibẹ. Awọn wọnyi ni awọn ti a npe ni titiipa.
ZooKeeper gba ọ laaye lati yanju gbogbo awọn iṣoro wọnyi si iwọn kan tabi omiiran. Ati pe Emi yoo fihan pẹlu awọn apẹẹrẹ bi o ṣe gba ọ laaye lati ṣe eyi.

Nibẹ ni o wa ti ko si ìdènà primitives. Nigba ti a ba bẹrẹ lilo nkan, atijo yii kii yoo duro de iṣẹlẹ eyikeyi lati ṣẹlẹ. O ṣeese julọ, nkan yii yoo ṣiṣẹ ni asynchronously, nitorinaa gbigba awọn ilana laaye lati ko ni idorikodo lakoko ti wọn nduro fun nkan kan. Eyi jẹ nkan ti o wulo pupọ.
Gbogbo awọn ibeere alabara ni a ṣe ilana ni aṣẹ ti isinyi gbogbogbo.
Ati awọn alabara ni aye lati gba iwifunni nipa awọn ayipada ni diẹ ninu awọn ipinlẹ, nipa awọn ayipada ninu data, ṣaaju ki alabara rii data ti o yipada funrararẹ.

ZooKeeper le ṣiṣẹ ni awọn ipo meji. Akọkọ jẹ lọtọ, lori node kan. Eyi rọrun fun idanwo. O tun le ṣiṣẹ ni ipo cluster, lori nọmba awọn node eyikeyi. apèsèTí a bá ní ẹ̀rọ 100, kò pọndandan kí ó ṣiṣẹ́ lórí ẹ̀rọ 100. Ó tó láti pín àwọn ẹ̀rọ díẹ̀ síbi tí ZooKeeper ti lè ṣiṣẹ́. Ó sì tẹ̀lé ìlànà wíwà nílẹ̀. ZooKeeper ń tọ́jú àdàkọ gbogbo dátà náà lórí àpẹẹrẹ ìṣiṣẹ́ kọ̀ọ̀kan. Èmi yóò ṣàlàyé bí ó ṣe ń ṣe èyí nígbà tó bá yá. Kò ní fọ́ tàbí pín dátà náà sí méjì. Ní ọwọ́ kan, èyí jẹ́ àléébù nítorí pé a kò le kó ọ̀pọ̀lọpọ̀ nǹkan pamọ́, ṣùgbọ́n ní ọwọ́ kejì, kò pọndandan. A kò ṣe é fún ìyẹn; kì í ṣe ibi ìpamọ́ dátà.
Data le wa ni ipamọ lori ẹgbẹ onibara. Eyi jẹ ipilẹ boṣewa ki a ma ṣe da iṣẹ naa duro ati maṣe gbe e pẹlu awọn ibeere kanna. Onibara ọlọgbọn nigbagbogbo mọ nipa eyi ati awọn caches.
Fun apẹẹrẹ, ohun kan ti yipada nibi. Iru ohun elo kan wa. A yan olori tuntun kan, ẹniti o ni iduro, fun apẹẹrẹ, fun awọn iṣẹ ṣiṣe kikọ. Ati pe a fẹ tun ṣe data naa. Ojutu kan ni lati fi sii ni lupu kan. Ati pe a ṣe ibeere iṣẹ wa nigbagbogbo - ṣe ohunkohun ti yipada? Aṣayan keji jẹ diẹ ti aipe. Eyi jẹ ẹrọ iṣọ ti o fun ọ laaye lati sọ fun awọn alabara pe ohun kan ti yipada. Eyi jẹ ọna ti ko gbowolori ni awọn ofin ti awọn orisun ati irọrun diẹ sii fun awọn alabara.

Onibara jẹ olumulo ti o nlo ZooKeeper.
Olupin jẹ ilana ZooKeeper funrararẹ.
Znode jẹ nkan pataki ni ZooKeeper. Gbogbo awọn znodes ti wa ni ipamọ ni iranti nipasẹ ZooKeeper ati pe a ṣeto wọn ni irisi aworan atọka, ni irisi igi kan.
Nibẹ ni o wa meji orisi ti mosi. Ni igba akọkọ ti ni imudojuiwọn / kọ, nigbati diẹ ninu awọn isẹ yi pada awọn ipinle ti wa igi. Igi naa wọpọ.
Ati pe o ṣee ṣe pe alabara ko pari ibeere kan ati pe o ti ge asopọ, ṣugbọn o le fi idi igba kan mulẹ nipasẹ eyiti o ṣe ajọṣepọ pẹlu ZooKeeper.

Awoṣe data ZooKeeper jọ eto faili kan. Wiwọle boṣewa kan wa lẹhinna a lọ bi ẹnipe nipasẹ awọn ilana ti o lọ lati gbongbo. Ati lẹhinna katalogi ti ipele akọkọ, ipele keji. Eyi ni gbogbo awọn znodes.
Kọọkan znode le fipamọ diẹ ninu awọn data, maa ko gan tobi, fun apẹẹrẹ, 10 kilobytes. Ati kọọkan znode le ni kan awọn nọmba omo .

Znodes wa ni orisirisi awọn orisi. Wọn le ṣẹda. Ati nigba ṣiṣẹda znode, a pato iru eyiti o yẹ ki o jẹ.
Nibẹ ni o wa meji orisi. Èkíní ni àsíá ephemeral. Znode ngbe laarin igba kan. Fun apẹẹrẹ, alabara ti ṣeto igba kan. Ati niwọn igba ti igba yii ba wa laaye, yoo wa. Eleyi jẹ pataki ni ibere ko lati gbe awọn nkankan kobojumu. Eyi tun dara fun awọn akoko nigba ti o ṣe pataki fun wa lati tọju awọn alakoko data laarin igba kan.
Awọn keji Iru ni lesese flag. O ṣe afikun counter ni ọna si znode. Fun apẹẹrẹ, a ni itọsọna pẹlu ohun elo 1_5. Ati nigbati a ṣẹda ipade akọkọ, o gba p_1, keji - p_2. Ati pe nigba ti a ba pe ọna yii ni gbogbo igba, a kọja ọna kikun, ti o nfihan apakan nikan ti ọna naa, ati pe nọmba yii jẹ afikun laifọwọyi nitori a tọka si iru ipade - lẹsẹsẹ.
Znode deede. Oun yoo wa laaye nigbagbogbo ati pe yoo ni orukọ ti a sọ fun u.

Ohun miiran ti o wulo ni asia iṣọ. Ti a ba fi sii, lẹhinna alabara le ṣe alabapin si diẹ ninu awọn iṣẹlẹ fun ipade kan pato. Emi yoo fihan ọ nigbamii pẹlu apẹẹrẹ bi a ṣe ṣe eyi. ZooKeeper funrararẹ sọ fun alabara pe data lori ipade ti yipada. Sibẹsibẹ, awọn iwifunni ko ṣe iṣeduro pe diẹ ninu awọn data titun ti de. Wọn sọ nirọrun pe ohun kan ti yipada, nitorinaa o tun ni lati ṣe afiwe data nigbamii pẹlu awọn ipe lọtọ.
Ati bi Mo ti sọ tẹlẹ, aṣẹ ti data jẹ ipinnu nipasẹ kilobytes. Ko si iwulo lati tọju data ọrọ nla sibẹ, nitori kii ṣe data data, o jẹ olupin iṣakoso iṣẹ.

Jẹ́ kí n sọ díẹ̀ nípa àwọn ìpàdé. Tí a bá ní ọ̀pọ̀lọpọ̀ olupin, a lè yípadà láti olupin kan sí omiran lọ́nà tí ó ṣe kedere. sерверу, nípa lílo ìdámọ̀ ìgbálẹ̀. Èyí rọrùn gan-an.
Igba kọọkan ni iru akoko asiko kan. Igba kan jẹ asọye nipasẹ boya alabara firanṣẹ ohunkohun si olupin lakoko igba yẹn. Ti ko ba ṣe atagba ohunkohun lakoko akoko ipari, igba naa ṣubu, tabi alabara le tii funrararẹ.

Ko ni awọn ẹya pupọ, ṣugbọn o le ṣe awọn ohun oriṣiriṣi pẹlu API yii. Ipe yẹn ti a rii ṣẹda ṣẹda znode ati gba awọn aye mẹta. Eyi ni ọna si znode, ati pe o gbọdọ wa ni pato ni kikun lati gbongbo. Ati pe eyi tun jẹ diẹ ninu data ti a fẹ gbe lọ sibẹ. Ati iru asia. Ati lẹhin ẹda o pada ọna si znode.
Ẹlẹẹkeji, o le parẹ. Ẹtan nibi ni pe paramita keji, ni afikun si ọna si znode, le pato ẹya naa. Nitorinaa, znode yẹn yoo paarẹ ti ẹya rẹ ti a gbe lọ ba jẹ deede si eyiti o wa nitootọ.
Ti a ko ba fẹ ṣayẹwo ẹya yii, lẹhinna a kan kọja ariyanjiyan “-1”.

Kẹta, o sọwedowo fun awọn aye ti a znode. Pada otitọ ti ipade ba wa, eke bibẹẹkọ.
Ati lẹhinna aago asia han, eyiti o fun ọ laaye lati ṣe atẹle ipade yii.
O le ṣeto asia paapaa lori ipade ti ko si ati gba iwifunni nigbati o han. Eyi tun le wulo.
A tọkọtaya siwaju sii italaya ni o wa gbaData. O han gbangba pe a le gba data nipasẹ znode. O tun le lo aago asia. Ni idi eyi, kii yoo fi sori ẹrọ ti ko ba si ipade. Nitorinaa, o nilo lati ni oye pe o wa, lẹhinna gba data.

O tun wa ṢetoData. Nibi ti a kọja version. Ati pe ti a ba kọja eyi, data lori znode ti ẹya kan yoo ni imudojuiwọn.
O tun le pato "-1" lati yọ ayẹwo yii kuro.
Ọna miiran ti o wulo ni gba Awọn ọmọde. A tun le gba atokọ ti gbogbo awọn znodes ti o jẹ tirẹ. A le bojuto eyi nipa tito aago asia.
Ati ọna mu gba gbogbo awọn ayipada laaye lati firanṣẹ ni ẹẹkan, nitorinaa rii daju pe wọn wa ni fipamọ ati pe gbogbo data ti yipada patapata.
Ti a ba fa awọn afiwera pẹlu siseto deede, lẹhinna nigbati o ba lo awọn ọna bii kikọ, eyiti o kọ nkan si disk, ati lẹhin ti o ba pada idahun si ọ, ko si iṣeduro pe o ti kọ data si disk. Ati paapaa nigba ti ẹrọ ṣiṣe ba ni idaniloju pe ohun gbogbo ti kọ, awọn ọna ẹrọ wa ninu disiki funrararẹ nibiti ilana naa ti lọ nipasẹ awọn ipele ti awọn buffers, ati lẹhin iyẹn nikan ni a gbe data sori disiki naa.

Pupọ julọ awọn ipe asynchronous ni a lo. Eyi n gba alabara laaye lati ṣiṣẹ ni afiwe pẹlu awọn ibeere oriṣiriṣi. O le lo ọna amuṣiṣẹpọ, ṣugbọn o kere si iṣelọpọ.
Awọn iṣẹ meji ti a sọrọ nipa jẹ imudojuiwọn / kọ, eyiti o yipada data. Iwọnyi jẹ ṣẹda, ṣetoData, muṣiṣẹpọ, paarẹ. Ati kika wa, getData, getChildren.

Bayi awọn apẹẹrẹ diẹ ti bii o ṣe le ṣe awọn alakoko fun ṣiṣẹ ni eto pinpin. Fun apẹẹrẹ, ti o ni ibatan si iṣeto ti nkan kan. Osise tuntun ti han. A fi ẹrọ kun ati bẹrẹ ilana naa. Ati pe awọn ibeere mẹta wọnyi wa. Bawo ni o ṣe beere ZooKeeper fun iṣeto ni? Ati pe ti a ba fẹ yi iṣeto naa pada, bawo ni a ṣe le yipada? Ati lẹhin ti a yipada, bawo ni awọn oṣiṣẹ ti a ni ṣe gba?
ZooKeeper jẹ ki eyi rọrun diẹ. Fun apẹẹrẹ, igi znode wa. Oju ipade wa fun ohun elo wa nibi, a ṣẹda ipade afikun ninu rẹ, eyiti o ni data lati iṣeto ni. Iwọnyi le tabi le ma jẹ awọn paramita lọtọ. Niwọn igba ti iwọn naa kere, iwọn atunto jẹ nigbagbogbo kekere paapaa, nitorinaa o ṣee ṣe pupọ lati tọju rẹ nibi.
O nlo ọna naa gbaData lati gba iṣeto ni fun oṣiṣẹ lati ipade. Ṣeto si otitọ. Ti o ba jẹ fun idi kan ipade yii ko si tẹlẹ, a yoo sọ fun wa nipa rẹ nigbati o ba han, tabi nigbati o yipada. Ti a ba fẹ mọ pe nkan kan ti yipada, lẹhinna a ṣeto si otitọ. Ati pe ti data inu ipade yii ba yipada, a yoo mọ nipa rẹ.
ṢetoData. A ṣeto data naa, ṣeto "-1", ie a ko ṣayẹwo ẹya, a ro pe a nigbagbogbo ni iṣeto kan, a ko nilo lati tọju ọpọlọpọ awọn atunto. Ti o ba nilo lati fipamọ pupọ, iwọ yoo nilo lati ṣafikun ipele miiran. Nibi a gbagbọ pe ẹyọkan lo wa, nitorinaa a ṣe imudojuiwọn ọkan tuntun nikan, nitorinaa a ko ṣayẹwo ẹya naa. Ni akoko yii, gbogbo awọn alabara ti o ti ṣe alabapin tẹlẹ gba ifitonileti kan pe ohunkan ti yipada ni ipade yii. Ati lẹhin ti wọn ti gba, wọn gbọdọ tun beere data naa lẹẹkansi. Ifitonileti naa ni pe wọn ko gba data funrararẹ, ṣugbọn iwifunni ti awọn ayipada nikan. Lẹhin eyi wọn gbọdọ beere fun data tuntun.

Aṣayan keji fun lilo alakoko jẹ ẹgbẹ ẹgbẹ. A ni ohun elo ti a pin, ọpọlọpọ awọn oṣiṣẹ wa ati pe a fẹ lati ni oye pe gbogbo wọn wa ni aye. Nitorina, wọn gbọdọ forukọsilẹ ara wọn pe wọn ṣiṣẹ ninu ohun elo wa. Ati pe a tun fẹ lati wa, boya lati ilana Titunto si tabi ibomiiran, nipa gbogbo awọn oṣiṣẹ ti nṣiṣe lọwọ ti a ni lọwọlọwọ.
Bawo ni a ṣe ṣe eyi? Fun ohun elo naa, a ṣẹda ipade awọn oṣiṣẹ ati ṣafikun sublevel kan nibẹ ni lilo ọna ṣiṣẹda. Mo ni ohun ašiše lori ifaworanhan. Nibi o nilo lesese pato, lẹhinna gbogbo awọn oṣiṣẹ yoo ṣẹda ni ọkọọkan. Ati ohun elo naa, ti o beere fun gbogbo data nipa awọn ọmọde ti ipade yii, gba gbogbo awọn oṣiṣẹ ti nṣiṣe lọwọ ti o wa.


Eyi jẹ iru imuse ẹru ti bii eyi ṣe le ṣee ṣe ni koodu Java. Jẹ ki a bẹrẹ lati opin, pẹlu ọna akọkọ. Eyi ni kilasi wa, jẹ ki a ṣẹda ọna rẹ. Gẹgẹbi ariyanjiyan akọkọ ti a lo ogun, nibiti a ti sopọ, ie a ṣeto bi ariyanjiyan. Ati awọn keji ariyanjiyan ni awọn orukọ ti awọn ẹgbẹ.
Bawo ni asopọ ṣe ṣẹlẹ? Eyi jẹ apẹẹrẹ ti o rọrun ti API ti o lo. Ohun gbogbo ni jo o rọrun nibi. ZooKeeper boṣewa kan wa. A kọja ogun si o. Ati ṣeto akoko ipari, fun apẹẹrẹ, si awọn aaya 5. Ati pe a ni ọmọ ẹgbẹ kan ti a pe ni Signal. Ni pataki, a ṣẹda ẹgbẹ kan ni ọna ti a firanṣẹ. A ko kọ data nibẹ, biotilejepe ohun kan le ti kọ. Ati awọn ipade nibi jẹ ti awọn jubẹẹlo iru. Ni pataki, eyi jẹ ipade deede deede ti yoo wa ni gbogbo igba. Eyi ni ibi ti a ti ṣẹda igba. Eyi ni imuse ti alabara funrararẹ. Onibara wa yoo ṣe ijabọ lorekore pe igba naa wa laaye. Ati pe nigba ti a ba pari igba, a pe sunmọ ati pe bẹ ni, igba naa ṣubu. Eyi jẹ ti ohunkan ba ṣubu fun wa, ki ZooKeeper rii nipa rẹ ki o ge igba naa kuro.

Bawo ni lati tii ohun elo kan? Nibi ohun gbogbo jẹ diẹ idiju. A ni akojọpọ awọn oṣiṣẹ, awọn orisun kan wa ti a fẹ lati tii. Lati ṣe eyi, a ṣẹda ipade lọtọ, fun apẹẹrẹ, ti a npe ni titiipa1. Ti a ba ni anfani lati ṣẹda rẹ, lẹhinna a ni titiipa kan nibi. Ati pe ti a ko ba le ṣẹda rẹ, lẹhinna oṣiṣẹ naa gbiyanju lati gba getData lati ibi, ati pe niwọn igba ti a ti ṣẹda ipade tẹlẹ, lẹhinna a fi ẹrọ oluṣọ kan sori ẹrọ nibi ati ni akoko ti ipo ipade yii yoo yipada, a yoo mọ nipa rẹ. Ati pe a le gbiyanju lati ni akoko lati tun ṣe. Ti a ba mu ipade yii, mu titiipa yii, lẹhinna lẹhin ti a ko nilo titiipa mọ, a yoo kọ silẹ, nitori ipade naa wa laarin igba nikan. Gẹgẹ bẹ, yoo parẹ. Ati pe alabara miiran, laarin ilana ti igba miiran, yoo ni anfani lati mu titiipa lori ipade yii, tabi dipo, yoo gba ifitonileti kan pe ohun kan ti yipada ati pe o le gbiyanju lati ṣe ni akoko.

Apeere miiran ti bii o ṣe le yan oludari akọkọ. Eleyi jẹ kekere kan diẹ idiju, sugbon tun jo o rọrun. Kini n ṣẹlẹ nibi? Ipin akọkọ wa ti o ṣajọpọ gbogbo awọn oṣiṣẹ. A n gbiyanju lati gba data nipa olori. Ti eyi ba ṣẹlẹ ni aṣeyọri, ie a gba data diẹ, lẹhinna oṣiṣẹ wa bẹrẹ lati tẹle oludari yii. O gbagbọ pe olori kan wa tẹlẹ.
Ti olori ba ku fun idi kan, fun apẹẹrẹ, ṣubu, lẹhinna a gbiyanju lati ṣẹda olori titun kan. Ati pe ti a ba ṣe aṣeyọri, lẹhinna oṣiṣẹ wa di olori. Ati pe ti ẹnikan ba ni akoko yii ṣakoso lati ṣẹda olori titun, lẹhinna a gbiyanju lati ni oye ẹniti o jẹ ati lẹhinna tẹle e.
Nibi ohun ti a npe ni ipa agbo dide, i.e. ipa agbo, nitori nigbati olori ba kú, ẹniti o jẹ akọkọ ni akoko yoo di olori.

Nigbati o ba n mu orisun kan, o le gbiyanju lati lo ọna ti o yatọ diẹ, eyiti o jẹ atẹle. Fun apẹẹrẹ, a fẹ lati gba titiipa, ṣugbọn laisi ipa hert. Yoo ni ninu otitọ pe awọn atokọ ohun elo wa awọn atokọ gbogbo awọn ids node fun ipade ti o wa tẹlẹ pẹlu titiipa kan. Ati pe ti o ba jẹ pe ipade fun eyiti a ṣẹda titiipa jẹ o kere ju ti ṣeto ti a gba, lẹhinna eyi tumọ si pe a ti gba titiipa naa. A ṣayẹwo pe a ti gba titiipa kan. Gẹgẹbi ayẹwo, ipo kan yoo wa ti id ti a gba nigba ṣiṣẹda titiipa tuntun jẹ iwonba. Ati pe ti a ba gba, lẹhinna a ṣiṣẹ siwaju sii.
Ti id kan ba wa ti o kere ju titiipa wa, lẹhinna a fi oluṣọ kan si iṣẹlẹ yii ki o duro de ifitonileti titi nkan yoo fi yipada. Iyẹn ni, a gba titiipa yii. Ati pe titi yoo fi ṣubu, a kii yoo di id ti o kere julọ ati pe kii yoo gba titiipa ti o kere ju, ati nitorinaa a yoo ni anfani lati wọle. Ati pe ti ipo yii ko ba pade, lẹhinna a lẹsẹkẹsẹ lọ si ibi lati gbiyanju lati gba titiipa yii lẹẹkansi, nitori nkan le ti yipada ni akoko yii.

Kini ZooKeeper ni ninu? Awọn nkan akọkọ mẹrin wa. Eyi jẹ awọn ilana ṣiṣe - Ibere. Ati tun ZooKeeper Atomic Broadcast. Wọle Ifiweranṣẹ wa nibiti gbogbo awọn iṣẹ ṣiṣe ti wa ni igbasilẹ. Ati In-memory Replicated DB funrararẹ, ie aaye data funrararẹ nibiti gbogbo igi yii ti wa ni ipamọ.
O tọ lati ṣe akiyesi pe gbogbo awọn iṣẹ kikọ lọ nipasẹ Ilana Ibeere. Ati awọn iṣẹ kika lọ taara si aaye data In-memory.

Awọn database ara ti wa ni kikun tun ṣe. Gbogbo awọn iṣẹlẹ ti ZooKeeper tọju ẹda pipe ti data naa.
Lati le mu ibi ipamọ data pada lẹhin jamba kan, iwe adehun kan wa. Iṣe deede ni pe ṣaaju ki data to wọle si iranti, o ti kọ sibẹ pe ti o ba kọlu, log yii le dun sẹhin ati pe ipo eto le tun pada. Ati awọn aworan igbakọọkan ti aaye data jẹ tun lo.

ZooKeeper Atomic Broadcast jẹ ohun kan ti a lo lati ṣetọju data ti a ṣe atunṣe.
ZAB fipa yan olori kan lati oju-ọna ti ipade ZooKeeper. Awọn apa miiran di ọmọlẹyin rẹ ati nireti diẹ ninu awọn iṣe lati ọdọ rẹ. Ti wọn ba gba awọn titẹ sii, wọn fi gbogbo wọn ranṣẹ si olori. Ó kọ́kọ́ ṣe iṣẹ́ ìkọ̀wé, ó sì fi ránṣẹ́ nípa ohun tó ti yí padà sí àwọn ọmọlẹ́yìn rẹ̀. Eyi, ni otitọ, gbọdọ ṣee ṣe ni atomiki, ie gbigbasilẹ ati iṣẹ igbohunsafefe ti gbogbo ohun gbọdọ ṣee ṣe ni atomiki, nitorinaa ṣe iṣeduro aitasera data.
O nikan lakọkọ kọ ibeere. Iṣẹ akọkọ rẹ ni pe o yi iṣẹ naa pada si imudojuiwọn iṣowo. Eyi jẹ ibeere ti ipilẹṣẹ pataki.
Ati pe nibi o tọ lati ṣe akiyesi pe idempotency ti awọn imudojuiwọn fun iṣẹ kanna jẹ iṣeduro. Kini o jẹ? Nkan yii, ti o ba ṣiṣẹ lẹẹmeji, yoo ni ipo kanna, ie ibeere naa funrararẹ kii yoo yipada. Ati pe eyi nilo lati ṣee ṣe pe ni ọran ti jamba, o le tun iṣẹ naa bẹrẹ, nitorinaa yiyi awọn ayipada ti o ṣubu silẹ ni akoko yii. Ni ọran yii, ipo ti eto naa yoo di kanna, ie ko yẹ ki o jẹ ọran pe lẹsẹsẹ kanna, fun apẹẹrẹ, awọn ilana imudojuiwọn, yori si awọn ipinlẹ ikẹhin ti eto naa.








orisun: www.habr.com
