M na-atụ aro ka ị gụọ transcript nke nkuzi "Hadoop. ZooKeeper" si usoro "Usoro maka ekesa nhazi nke nnukwu mpịakọta data na Hadoop"
Gịnị bụ ZooKeeper, ebe ya na gburugburu ebe obibi Hadoop. Ihe na-abụghị eziokwu gbasara kọmpụta ekesa. Eserese nke usoro ekesa ọkọlọtọ. Ihe isi ike n'ịhazi usoro kesara. Nsogbu nhazi a na-ahụkarị. Ụkpụrụ dị n'azụ imewe nke ZooKeeper. Ụdị data ZooKeeper. ọkọlọtọ znode. Oge. API onye ahịa. Primitives (nhazi, otu ndị otu, mkpọchi dị mfe, ntuli aka ndị isi, mkpọchi na-enweghị mmetụta igwe). Ihe owuwu ZooKeeper. ZooKeeper DB. ZAB. Rịọ onye njikwa.


Taa, anyị ga-ekwu maka ZooKeeper. Ihe a bara ezigbo uru. Ọ, dị ka ngwaahịa Apache Hadoop ọ bụla, nwere akara ngosi. Ọ na-egosi nwoke.
Tupu nke a, anyị na-ekwukarị banyere otu esi edozi data ebe ahụ, otu esi echekwa ya, ya bụ, otu esi eji ya n'ụzọ ụfọdụ ma rụọ ọrụ na ya n'ụzọ ụfọdụ. Ma taa, m ga-achọ ikwu ntakịrị banyere iwulite ngwa ndị kesara. Na ZooKeeper bụ otu n'ime ihe ndị ahụ na-enye gị ohere ime ka okwu a dị mfe. Nke a bụ ụdị ọrụ nke ezubere maka ụfọdụ ụdị nhazi nke mmekọrịta nke usoro na usoro nkesa, na ngwa ndị na-ekesa.
Mkpa ndị dị otú ahụ ngwa na-aghọwanye kwa ụbọchị, nke ahụ bụ ihe anyị N'ezie bụ ihe niile banyere. N'otu aka ahụ, MapReduce na usoro a dị njikere na-enye gị ohere iwepụta mgbagwoju anya a ma mee ka onye mmemme na-edepụta ihe ochie dị ka mmekọrịta na nhazi nke usoro. Ma n'aka nke ọzọ, ọ dịghị onye na-ekwe nkwa na a gaghị eme nke a n'agbanyeghị. MapReduce ma ọ bụ ihe ndị ọzọ emebere emebere anaghị edochicha ụfọdụ ikpe na-enweghị ike itinye ya site na iji nke a. Gụnyere MapReduce onwe ya na ọtụtụ ọrụ Apache ndị ọzọ, ha na-ekesakwa ngwa. Na ime ka ide ihe dị mfe, ha dere ZooKeeper.
Dịka ngwa niile metụtara Hadoop, Yahoo! Ugbu a ọ bụkwa ngwa Apache. Azụlitebeghị ya nke ọma ka HBase. Ọ bụrụ na ị na-aga JIRA HBase, mgbe ahụ kwa ụbọchị e nwere ụyọkọ nke ahụhụ akụkọ, a ụyọkọ amụma ebuli ihe, i.e. ndụ na oru ngo na-aga n'ihu mgbe niile. Na ZooKeeper, n'otu aka ahụ, bụ ngwaahịa dị mfe, na n'aka nke ọzọ, nke a na-eme ka a ghara ịdabere na ya. Ma ọ dị nnọọ mfe iji, nke mere na ọ bụrụ ọkọlọtọ na ngwa n'ime Hadoop gburugburu ebe obibi. Ya mere, echere m na ọ ga-aba uru ịtụle ya iji ghọta otú o si arụ ọrụ na otu esi eji ya.

Nke a bụ foto sitere na nkuzi ụfọdụ anyị nwere. Anyị nwere ike ikwu na ọ bụ orthogonal n'ihe niile anyị tụlere ugbu a. Na ihe niile egosipụtara ebe a, ruo otu ogo ma ọ bụ ọzọ, na-arụ ọrụ na ZooKeeper, ya bụ, ọ bụ ọrụ na-eji ngwaahịa ndị a niile. Ma HDFS ma ọ bụ MapReduce edeghị ọrụ nke ha ga-arụ ọrụ nke ọma. N'ihi ya, a na-eji ZooKeeper. Na nke a na-eme ka mmepe dị mfe na ụfọdụ ihe metụtara njehie.

Ebee ka ihe a niile si abịa? Ọ ga-adị ka anyị wepụtara ngwa abụọ n'otu n'otu na kọmpụta dị iche iche, jikọọ ha na eriri ma ọ bụ na ntupu, ihe niile na-arụkwa ọrụ. Mana nsogbu bụ na netwọk ahụ enweghị ntụkwasị obi, ma ọ bụrụ na ị na-ekupụ okporo ụzọ ma ọ bụ lelee ihe na-eme ebe ahụ na ọkwa dị ala, ka ndị ahịa si emekọrịta na netwọkụ, ị nwere ike ịhụ na ụfọdụ ngwugwu furu efu ma ọ bụ zighachi ya. Ọ bụghị n'efu ka e mepụtara ụkpụrụ TCP, nke na-enye gị ohere ịmepụta otu nnọkọ ma kwe nkwa ịnyefe ozi. Mana n'ọnọdụ ọ bụla, ọbụlagodi TCP enweghị ike ịzọpụta gị mgbe niile. Ihe niile nwere oge nkwụsị. Netwọk nwere ike ịpụ naanị nwa oge. Ọ nwere ike na-afụ ụfụ. Na ihe a niile na-eduga n'eziokwu na ị nweghị ike ịdabere na netwọk ahụ bụ ntụkwasị obi. Nke a bụ isi ihe dị iche na ide ngwa ndị na-agba ọsọ na otu kọmpụta ma ọ bụ na otu supercomputer, ebe enweghị Network, ebe enwere ụgbọ ala mgbanwe data a pụrụ ịdabere na ya na ebe nchekwa. Na nke a bụ isi ihe dị iche.
Tinyere ihe ndị ọzọ, mgbe ị na-eji Netwọk, a na-enwe oge ụfọdụ. Disk nwekwara ya, ma Network nwere ọtụtụ na ya. Latency bụ oge igbu oge, nke nwere ike ịbụ obere ma ọ bụ dị oke mkpa.
Topology netwọk na-agbanwe. Kedu ihe bụ topology - nke a bụ ntinye nke akụrụngwa netwọkụ anyị. Enwere ebe data, enwere racks na-eguzo n'ebe ahụ, enwere kandụl. Enwere ike ịmegharị ihe ndị a niile, megharịa, wdg. Nke a niile kwesịkwara iburu n'uche. Aha IP na-agbanwe, ụzọ nke njem okporo ụzọ anyị si agbanwe. Nke a kwesịkwara iburu n'uche.
Netwọk nwekwara ike ịgbanwe n'ihe gbasara akụrụngwa. Site na omume, enwere m ike ịsị na ndị injinia netwọkụ anyị na-enwe mmasị n'ezie imelite ihe na kandụl kwa oge. Na mberede, firmware ọhụrụ pụtara ma ha enweghị mmasị na ụfọdụ ụyọkọ Hadoop. Ha nwere ọrụ nke ha. Maka ha, isi ihe bụ na Network na-arụ ọrụ. N'ihi ya, ha chọrọ ibugharị ihe n'ebe ahụ, mee ọkụ ọkụ na ngwaike ha, ngwaike na-agbanwekwa oge ụfọdụ. Ihe a niile kwesịrị iburu n'uche. Ihe a niile na-emetụta ngwa anyị ekesara.
Ọtụtụ mgbe ndị mmadụ na-amalite ịrụ ọrụ na nnukwu data maka ihe ụfọdụ kwenyere na ịntanetị enweghị njedebe. Ọ bụrụ na enwere faịlụ nke ọtụtụ terabytes ebe ahụ, ị nwere ike ibuga ya na sava gị ma ọ bụ kọmputa wee mepee ya site na iji cat na-ekiri. Njehie ọzọ dị na Vim lee anya na osisi. Emela nke a n'ihi na ọ dị njọ. N'ihi na Vim na-anwa ịchekwa ihe niile, tinye ihe niile na ebe nchekwa, ọkachasị mgbe anyị malitere ịkwaga na ndekọ a wee na-achọ ihe. Ihe ndị a bụ ihe echefuru echefu, ma kwesịrị ịtụle.

Ọ dị mfe ide otu mmemme nke na-arụ n'otu kọmputa nwere otu processor.
Mgbe usoro anyị na-etolite, anyị na-achọ ime ka ya niile dị na ya, na-eme ka ọ bụghị naanị na kọmputa, kamakwa na ụyọkọ. Ajụjụ na-ebilite: otu esi ahazi okwu a? Ngwa anyị nwere ike ọ gaghị enwe mmekọrịta n'etiti ibe anyị, mana anyị na-agba ọtụtụ usoro n'otu n'otu na ọtụtụ sava. Na otu esi enyocha na ihe niile na-aga nke ọma maka ha? Dị ka ihe atụ, ha na-ezipụ ihe n’Ịntanet. Ha ga-ede banyere steeti ha ebe dịka ọmụmaatụ, n'ụdị nchekwa data ma ọ bụ log, wee chịkọta ndekọ a wee nyochaa ya ebe. Ọzọkwa, anyị kwesịrị iburu n'uche na usoro ahụ na-arụ ọrụ ma na-arụ ọrụ, na mberede ụfọdụ njehie pụtara na ya ma ọ bụ daa, mgbe ahụ, olee ngwa ngwa anyị ga-achọpụta banyere ya?
O doro anya na ihe a niile nwere ike nyochaa ngwa ngwa. Nke a dịkwa mma, mana nleba anya bụ obere ihe na-enye gị ohere inyocha ihe ụfọdụ na ọkwa kachasị elu.
Mgbe anyị chọrọ ka usoro anyị malite ịmalite mmekọrịta anyị na ibe anyị, dịka ọmụmaatụ, iziga ibe anyị ụfọdụ data, mgbe ahụ ajụjụ ahụ na-ebilite - olee otú nke a ga-esi mee? A ga-enwe ụdị ọnọdụ agbụrụ, ha ga-edegharị ibe ha, data ahụ ga-abata n'ụzọ ziri ezi, ihe ọ bụla ga-efunahụ n'ụzọ? Anyị kwesịrị ịzụlite ụdị protocol, wdg.
Ịchịkọta usoro ndị a niile abụghị ihe dị mkpa. Ọ na-amanye onye nrụpụta ka ọ gbadaa n'ogo dị ala, wee dee sistemu site na ọkọ, ma ọ bụ na-esiteghị na ọkọ, mana nke a adịghị mfe.
Ọ bụrụ na ị nweta algorithm cryptographic ma ọ bụ ọbụna mejuputa ya, tụfuo ya ozugbo, n'ihi na o yikarịrị ka ọ gaghị arụ ọrụ maka gị. O yikarịrị ka ọ ga-enwe ụyọkọ mperi ndị ị chefuru inye. Ejila ya mee ihe ọ bụla dị njọ n'ihi na ọ ga-abụrịrị na ọ naghị akwụsi ike. N'ihi na a nwalere algọridim niile dị adị site na oge ruo ogologo oge. Ndị obodo na-akpagbu ya. Nke a bụ isiokwu dị iche. Ọ bụkwa otu ihe ahụ ebe a. Ọ bụrụ na ọ ga-ekwe omume ịghara itinye ụdị usoro mmekọrịta n'onwe gị, mgbe ahụ ọ ka mma ka ị ghara ime nke a, n'ihi na ọ dị mgbagwoju anya ma na-eduga gị n'okporo ụzọ na-ama jijiji nke na-achọ njehie mgbe niile.
Taa, anyị na-ekwu maka ZooKeeper. N'otu aka ahụ, ọ bụ usoro nhazi, n'aka nke ọzọ, ọ bụ ọrụ na-eme ka ndụ dịkwuo mfe maka onye mmepụta ma na-eme ka mmejuputa echiche na nhazi nke usoro anyị dị mfe dị ka o kwere mee.

Ka anyị cheta ihe usoro ekesa ọkọlọtọ nwere ike ịdị ka. Nke a bụ ihe anyị kwuru - HDFS, HBase. Enwere usoro Nna-ukwu nke na-ahụ maka ndị ọrụ na usoro ohu. Ọ bụ ya na-ahụ maka ịhazi na ikesa ọrụ, ịmaliteghachi ndị ọrụ, ịmalite ndị ọhụrụ, na ikesa ibu.

Ihe dị elu karịa bụ Ọrụ Nhazi, ya bụ, bugharịa ọrụ nhazi ahụ n'onwe ya n'ime usoro dị iche, gbakwunyere ụdị nkwado ndabere na mpaghara ma ọ bụ Nna-ukwu guzosiri ike n'otu aka ahụ, n'ihi na Nna-ukwu nwere ike ịda. Ma ọ bụrụ na Nna-ukwu ahụ daa, mgbe ahụ usoro anyị agaghị arụ ọrụ. Anyị na-agba ọsọ ndabere. Ụfọdụ na-ekwu na Nna-ukwu kwesịrị ka emeghachi ya ka ọ bụrụ ndabere. Enwere ike inyefe nke a n'aka ndị ọrụ nhazi. Mana na eserese a, Nna-ukwu n'onwe ya na-ahụ maka ịhazi ndị ọrụ ebe a ọrụ na-ahazi ọrụ mmegharị data.

Nhọrọ dị elu karịa bụ mgbe ọrụ anyị na-edozi nhazi niile, dịka a na-emekarị. Ọ na-arụ ọrụ iji hụ na ihe niile na-arụ ọrụ. Ma ọ bụrụ na ihe adịghị arụ ọrụ, anyị na-achọpụta banyere ya ma gbalịa ịgbasa ọnọdụ a. N'ọnọdụ ọ bụla, a hapụrụ anyị Nna-ukwu nke na-emekọrịta ihe n'ụzọ ụfọdụ na ndị ohu ma nwee ike izipu data, ozi, ozi, wdg site na ụfọdụ ọrụ.

Enwere atụmatụ dị elu karịa, mgbe anyị na-enweghị Nna-ukwu, oghere niile bụ ndị ohu ukwu, dị iche na omume ha. Mana ha ka kwesịrị ka ha na ibe ha na-akpakọrịta, yabụ a ka nwere ọrụ ụfọdụ iji hazie omume ndị a. Eleghị anya, Cassandra, nke na-arụ ọrụ na ụkpụrụ a, dabara na atụmatụ a.
O siri ike ikwu nke n'ime atụmatụ ndị a na-arụ ọrụ nke ọma. Onye ọ bụla nwere uru na ọghọm ya.

Ọ dịghịkwa mkpa ịtụ egwu ihe ụfọdụ na Nna-ukwu, n'ihi na, dị ka omume na-egosi, ọ naghị adị mfe ije ozi mgbe niile. Ihe bụ isi ebe a bụ ịhọrọ ngwọta ziri ezi maka ịkwado ọrụ a na oghere dị ike dị iche iche, ka o wee nwee ihe onwunwe zuru oke, nke mere na ọ bụrụ na ọ ga-ekwe omume, ndị ọrụ agaghị enwe ohere ebe ahụ, ka ha ghara igbu usoro a na mberede. Ma n'otu oge ahụ, na atụmatụ dị otú ahụ ọ dị mfe ijikwa ndị ọrụ site na usoro Master, ya bụ, atụmatụ a dị mfe site n'echiche nke mmejuputa.

Na atụmatụ a (nke dị n'elu) nwere ike ịdị mgbagwoju anya, ma a pụrụ ịdabere na ya.

Isi nsogbu bụ ọdịda akụkụ. Dịka ọmụmaatụ, mgbe anyị na-eziga ozi n'elu netwọk, ụdị ihe mberede na-eme, onye zitere ozi ahụ agaghị ama ma ọ natara ozi ya na ihe mere n'akụkụ onye nnata, agaghị ama ma edoziri ozi ahụ nke ọma. , ya bụ, ọ gaghị enweta nkwenye ọ bụla.
N'ihi ya, anyị ga-edozi ọnọdụ a. Ma ihe kachasị mfe bụ iziga ozi a wee chere ruo mgbe anyị nwetara nzaghachi. N'okwu a, a naghị echebara ma ọnọdụ nke nnata agbanweela. Anyị nwere ike izipu ozi wee tinye otu data ugboro abụọ.
ZooKeeper na-enye ụzọ isi nagide ọjụjụ dị otú ahụ, nke na-emekwa ka ndụ anyị dịkwuo mfe.

Dị ka e kwuru ntakịrị na mbụ, nke a yiri ịde ihe omume multi-threaded, ma isi ihe dị iche bụ na na ngwa ndị a na-ekesa nke anyị na-ewu na igwe dị iche iche, nanị ụzọ isi kwurịta okwu bụ Network. N'ezie, nke a bụ ihe owuwu nke enweghị ihe ọ bụla. Usoro ma ọ bụ ọrụ ọ bụla na-arụ n'otu igwe nwere ebe nchekwa nke ya, diski nke ya, ihe nhazi nke ya, nke ọ na-adịghị ekenye onye ọ bụla.
Ọ bụrụ na anyị na-ede ihe omume multi-threaded na otu kọmputa, mgbe ahụ anyị nwere ike iji na-ekekọrịta ebe nchekwa mgbanwe data. Anyị nwere mgba ọkụ gburugburu ebe ahụ, usoro nwere ike ịgbanwe. Nke a na-emetụta arụmọrụ. N'otu aka ahụ, ọ dịghị ihe dị otú ahụ na mmemme na ụyọkọ, ma enwere nsogbu na Network.

N'ihi ya, isi nsogbu ndị na-ebilite mgbe ị na-ede usoro nkesa bụ nhazi. Anyị na-ede ụdị ngwa. Ọ bụrụ na ọ dị mfe, mgbe ahụ anyị hardcode ụdị ọ bụla nke nọmba na koodu, ma nke a adịghị mma, n'ihi na ọ bụrụ na anyị na-ekpebi na kama oge nke ọkara nke abụọ, anyị chọrọ oge nke otu sekọnd, mgbe ahụ, anyị kwesịrị ichikota ngwa na. tụgharịa ihe niile ọzọ. Ọ bụ otu ihe mgbe ọ dị n'otu igwe, mgbe ị nwere ike ịmalitegharị ya, mana mgbe anyị nwere ọtụtụ igwe, anyị ga-edobe ihe niile mgbe niile. Anyị ga-agbalị ime ka ngwa configurable.
N'ebe a, anyị na-ekwu maka nhazi static maka usoro usoro. Nke a abụghị kpamkpam, ma eleghị anya site na echiche sistemụ arụmọrụ, ọ nwere ike ịbụ nhazi nhazi maka usoro anyị, ya bụ, nke a bụ nhazi nke enweghị ike iwere na imelite ya.
Enwekwara nhazi dị ike. Ndị a bụ paramita ndị anyị chọrọ ịgbanwe na ofufe ka a na-eburu ha n'ebe ahụ.
Gịnị bụ nsogbu ebe a? Anyị emelitere config, tụgharịa ya, ya mere gịnị? Nsogbu nwere ike ịbụ na n'otu aka anyị wepụrụ nhazi ahụ, mana chefuru ihe ọhụrụ ahụ, nhazi ahụ nọgidere n'ebe ahụ. Nke abụọ, ka anyị na-atụgharị, emelitere nhazi ahụ n'ebe ụfọdụ, ma ọ bụghị n'ebe ndị ọzọ. Ma usoro ụfọdụ nke ngwa anyị na-arụ n'otu igwe ka ejiri usoro ọhụrụ malitegharịa, yana ebe nwere nke ochie. Nke a nwere ike ime ka ngwa anyị ekesara ghara ịdị n'otu site na nhazi nhazi. Nsogbu a bụ ihe a na-ahụkarị. Maka nhazi dị ike, ọ dị mkpa karịa n'ihi na ọ na-egosi na enwere ike ịgbanwe ya na ofufe.
Nsogbu ọzọ bụ ịbụ onye otu. Anyị na-enwe ụfọdụ ndị ọrụ mgbe niile, anyị na-achọ mgbe niile ịmara onye n'ime ha dị ndụ, onye n'ime ha nwụrụ anwụ. Ọ bụrụ na e nwere Nna-ukwu, mgbe ahụ ọ ghaghị ịghọta ndị ọrụ nwere ike ibugharị ndị ahịa ka ha na-agbakọ ma ọ bụ na-arụ ọrụ na data, na nke enweghị ike. Nsogbu na-ebilite mgbe niile bụ na anyị kwesịrị ịma onye na-arụ ọrụ na ụyọkọ anyị.
Nsogbu ọzọ a na-ahụkarị bụ ntuli aka ndị ndu, mgbe anyị chọrọ ịma onye na-ahụ maka ya. Otu ihe atụ bụ mmegharị, mgbe anyị nwere usoro ụfọdụ na-enweta ọrụ ide wee megharịa ha n'etiti usoro ndị ọzọ. Ọ ga-abụ onye ndú, onye ọ bụla ga-erubere ya isi, na-eso ya. Ọ dị mkpa ịhọrọ usoro ka ọ bụrụ ihe mgbagwoju anya maka onye ọ bụla, ka ọ ghara ịpụta na a họpụtara ndị isi abụọ.
Enwekwara ohere na-ekewapụ onwe ya. Nsogbu ebe a dị mgbagwoju anya. Enwere ihe dị ka mutex, mgbe ị na-ede mmemme multi-threaded ma chọọ ịnweta ụfọdụ akụ, dịka ọmụmaatụ, cell cell, ga-ejedebe na naanị otu eri. Ebe a akụ nwere ike ịbụ ihe ọzọ nkịtị. Ngwa dị iche iche sitere na ọnụ ụzọ dị iche iche nke netwọkụ anyị kwesịrị ịnata naanị ịnweta akụrụngwa enyere, ọ bụghị ka onye ọ bụla nwee ike ịgbanwe ya ma ọ bụ dee ihe n'ebe ahụ. Ndị a bụ ihe a na-akpọ mkpọchi.
ZooKeeper na-enye gị ohere idozi nsogbu ndị a niile n'otu ogo ma ọ bụ ọzọ. M ga-egosikwa ihe atụ ka o si enye gị ohere ime nke a.

Enweghị mgbochi primitives. Mgbe anyị malitere iji ihe, ihe ochie a agaghị echere ka ihe omume ọ bụla mee. O yikarịrị, ihe a ga-arụ ọrụ asynchronously, si otú ikwe ka usoro ghara kpọgidere mgbe ha na-eche ihe. Nke a bụ ihe bara ezigbo uru.
A na-ahazi arịrịọ ndị ahịa niile n'usoro nke kwụ n'ahịrị izugbe.
Na ndị ahịa nwere ohere ịnata ọkwa banyere mgbanwe na steeti ụfọdụ, banyere mgbanwe na data, tupu onye ahịa ahụ hụ data gbanwere n'onwe ha.

ZooKeeper nwere ike ịrụ ọrụ n'ụdị abụọ. Nke mbụ bụ nke onwe ya, n'otu ntabi anya. Nke a dị mma maka nnwale. Ọ nwekwara ike ịrụ ọrụ na ụdị klọsta, na ọnụọgụgụ nodes ọ bụla. savaỌ bụrụ na anyị nwere otu igwe 100, ọ dịghị mkpa ka ọ na-agba ọsọ na igwe 100. O zuru ezu ịtọnye igwe ole na ole ebe ZooKeeper nwere ike ịgba ọsọ. Ọ na-agbasokwa ụkpụrụ nke nnweta dị elu. ZooKeeper na-echekwa otu data zuru oke na ihe atụ ọ bụla na-agba ọsọ. M ga-akọwa otu o si eme nke a ma emechaa. Ọ naghị apịa ma ọ bụ kewaa data ahụ. N'otu aka, nke a bụ ihe ọghọm n'ihi na anyị enweghị ike ịchekwa ọtụtụ ihe, mana n'aka nke ọzọ, ọ dịghị mkpa. Emebeghi ya maka nke ahụ; ọ bụghị nchekwa data.
Enwere ike ịchekwa data n'akụkụ ndị ahịa. Nke a bụ ụkpụrụ ọkọlọtọ ka anyị ghara ịkwụsị ọrụ ahụ ma ghara iji otu arịrịọ ahụ buru ya. Onye ahịa nwere ọgụgụ isi maara nke a ma chekwaa ya.
Dịka ọmụmaatụ, ọ dị ihe gbanwere ebe a. Enwere ụdị ngwa. A họpụtara onye ndu ọhụrụ, onye na-ahụ maka ọrụ, dịka ọmụmaatụ, maka nhazi ọrụ ide. Ma anyị chọrọ ịmegharị data ahụ. Otu ihe ngwọta bụ itinye ya na loop. Ma anyị na-ajụ ọrụ anyị mgbe niile - ọ nwere ihe gbanwere? Nhọrọ nke abụọ kacha mma. Nke a bụ usoro elekere na-enye gị ohere ịgwa ndị ahịa na ihe agbanweela. Nke a bụ usoro dị ọnụ ala karịa n'ihe gbasara akụrụngwa yana adabara ndị ahịa.

Onye ahịa bụ onye ọrụ na-eji ZooKeeper.
Ihe nkesa bụ usoro ZooKeeper n'onwe ya.
Znode bụ isi ihe na ZooKeeper. A na-echekwa znodes niile na ebe nchekwa site na ZooKeeper ma hazie ya n'ụdị eserese dị elu, n'ụdị osisi.
Enwere ụdị ọrụ abụọ. Nke mbụ bụ mmelite/dee, mgbe ụfọdụ ọrụ na-agbanwe ọnọdụ nke osisi anyị. Osisi a na-ahụkarị.
Ma ọ ga-ekwe omume na onye ahịa anaghị emecha otu arịrịọ ma kewapụ ya, mana ọ nwere ike ịmepụta nnọkọ site na ya na ZooKeeper.

Ụdị data ZooKeeper yiri sistemụ faịlụ. Enwere mgbọrọgwụ ọkọlọtọ wee gaa dị ka a ga-asị na site na akwụkwọ ndekọ aha na-esi na mgbọrọgwụ. Na mgbe ahụ katalọgụ nke ọkwa mbụ, ọkwa nke abụọ. Nke a bụ znodes niile.
Znode ọ bụla nwere ike ịchekwa ụfọdụ data, anaghị adịkarị oke ibu, dịka ọmụmaatụ, 10 kilobytes. Na znode nke ọ bụla nwere ike inwe ọnụ ọgụgụ ụmụaka.

Znodes na-abịa n'ụdị dị iche iche. Enwere ike ịmepụta ha. Na mgbe ị na-eke znode, anyị na-akọwapụta ụdị nke ọ kwesịrị ịbụ.
Enwere ụdị abụọ. Nke mbụ bụ ọkọlọtọ ephemeral. Znode na-ebi n'ime otu nnọkọ. Dịka ọmụmaatụ, onye ahịa ewepụtala nnọkọ. Ma ọ bụrụhaala na nnọkọ a dị ndụ, ọ ga-adị. Nke a dị mkpa ka ọ ghara ịmepụta ihe na-adịghị mkpa. Nke a dịkwa mma maka oge mgbe ọ dị mkpa ka anyị chekwaa data primitives n'ime otu nnọkọ.
Ụdị nke abụọ bụ ọkọlọtọ usoro. Ọ na-abawanye counter na ụzọ znode. Dịka ọmụmaatụ, anyị nwere akwụkwọ ndekọ aha nwere ngwa 1_5. Ma mgbe anyị mepụtara ọnụ ụzọ mbụ, ọ natara p_1, nke abụọ - p_2. Na mgbe anyị na-akpọ usoro a n'oge ọ bụla, anyị na-agafe ụzọ zuru oke, na-egosi naanị akụkụ nke ụzọ ahụ, na ọnụ ọgụgụ a na-akpaghị aka na-abawanye n'ihi na anyị na-egosi ụdị ọnụ - usoro.
Znode mgbe niile. Ọ ga-adị ndụ mgbe niile ma nwee aha anyị na-agwa ya.

Ihe ọzọ bara uru bụ ọkọlọtọ elekere. Ọ bụrụ na anyị wụnye ya, mgbe ahụ onye ahịa nwere ike ịdenye aha na ihe omume ụfọdụ maka ọnụ ọnụ. Aga m egosi gị ma emechaa jiri ihe atụ ka esi eme nke a. ZooKeeper n'onwe ya na-eme ka onye ahịa mara na data dị na ọnụ agbanweela. Agbanyeghị, amamọkwa anaghị ekwe nkwa na ụfọdụ data abịala. Ha na-ekwu naanị na ihe agbanweela, yabụ ị ka ga-eji data emechaa tụnyere oku dị iche iche.
Ma dị ka m kwuru na mbụ, a na-ekpebi usoro data site na kilobytes. Ọ dịghị mkpa ịchekwa nnukwu data ederede n'ebe ahụ, n'ihi na ọ bụghị nchekwa data, ọ bụ ihe nkesa na-ahazi ihe.

Ka m kọọrọ gị obere ihe gbasara nnọkọ. Ọ bụrụ na anyị nwere ọtụtụ sava, anyị nwere ike ịgbanwe site n'otu sava gaa na nke ọzọ n'ụzọ doro anya. ihe nkesa, site na iji ID nnọkọ. Nke a dị nnọọ mma.
Oge nke ọ bụla nwere ụdị nkwụsịtụ. A na-akọwa otu nnọkọ ma onye ahịa na-ezigara ihe ọ bụla na ihe nkesa n'oge nnọkọ ahụ. Ọ bụrụ na ọ bufeghị ihe ọ bụla n'oge oge, nnọkọ ahụ ga-ada, ma ọ bụ onye ahịa nwere ike mechie ya n'onwe ya.

Ọ nweghị ọtụtụ atụmatụ ahụ, mana ị nwere ike iji API a mee ihe dị iche iche. Oku ahụ anyị hụrụ na-emepụta znode wee were paramita atọ. Nke a bụ ụzọ na znode, na a ghaghị ịkọwa ya n'ụzọ zuru ezu site na mgbọrọgwụ. Na kwa nke a bụ ụfọdụ data na anyị chọrọ nyefee n'ebe ahụ. Na ụdị ọkọlọtọ. Na mgbe e kere eke ọ na-alaghachi n'ụzọ na znode.
Nke abụọ, ị nwere ike ihichapụ ya. Aghụghọ ebe a bụ na oke nke abụọ, na mgbakwunye na ụzọ znode, nwere ike ịkọwapụta ụdị ahụ. N'ihi ya, a ga-ehichapụ znode ahụ ma ọ bụrụ na ụdị ya anyị bufere ya na nke dị adị n'ezie.
Ọ bụrụ na anyị achọghị ịlele ụdị a, anyị ga-agafe naanị arụmụka "-1".

Nke atọ, ọ na-enyocha maka ịdị adị nke znode. laghachi eziokwu ma ọ bụrụ na ọnụ dị, ụgha ma ọ bụghị.
Mgbe ahụ ọkọlọtọ ọkọlọtọ pụtara, nke na-enye gị ohere inyocha ọnụ a.
Ị nwere ike ịtọ ọkọlọtọ a ọbụna na ọnụ ọnụ na-adịghị ma nweta ọkwa mgbe ọ pụtara. Nke a nwekwara ike ịba uru.
Ihe ịma aka di na nwunye ọzọ bụ nwetaData. O doro anya na anyị nwere ike ịnweta data site na znode. Ị nwekwara ike iji elekere ọkọlọtọ. N'okwu a, ọ gaghị arụnye ma ọ bụrụ na enweghị ọnụ. Ya mere, ịkwesịrị ịghọta na ọ dị, wee nweta data.

E nwekwara Tọọ data. Ebe a anyị gafere version. Ma ọ bụrụ na anyị gafere nke a, a ga-emelite data na znode nke otu ụdị.
Ị nwekwara ike ezipụta "-1" ka ewepu ego a.
Ụzọ ọzọ bara uru bụ nweta umuaka. Anyị nwekwara ike nweta ndepụta znodes niile bụ nke ya. Anyị nwere ike nyochaa nke a site na ịtọ elekere ọkọlọtọ.
Na usoro mmekọrịta na-enye ohere izipu mgbanwe niile ozugbo, si otú ahụ hụ na echekwara ha na agbanweela data niile kpamkpam.
Ọ bụrụ na anyị na-ese ihe atụ na mmemme mgbe niile, mgbe ahụ, mgbe ị na-eji usoro ndị dị ka dee, nke na-ede ihe na diski, na mgbe ọ laghachiri nzaghachi nye gị, ọ dịghị nkwa na ị dela data na diski. Na ọbụlagodi mgbe sistemụ arụmọrụ nwere obi ike na edeela ihe niile, enwere usoro na diski n'onwe ya ebe usoro ahụ na-agafe n'ígwé nke buffers, naanị mgbe nke ahụ gasịrị, etinyere data na diski ahụ.

A na-ejikarị oku asynchronous eme ihe. Nke a na-enye onye ahịa ohere ịrụ ọrụ n'otu oge na arịrịọ dị iche iche. Ị nwere ike iji usoro a na-emekọrịta ihe, mana ọ naghị arụpụta ihe.
Ọrụ abụọ anyị kwuru maka ya bụ mmelite / dee, nke na-agbanwe data. Ndị a bụ imepụta, setData, mekọrịta, hichapụ. Na agụ dị, getData, getChildren.

Ugbu a ihe atụ ole na ole nke otu ị ga - esi mee ka primitives maka ịrụ ọrụ na usoro ekesa. Dịka ọmụmaatụ, metụtara nhazi nke ihe. Onye ọrụ ọhụrụ apụtala. Anyị gbakwunyere igwe ma malite usoro ahụ. E nwekwara ajụjụ atọ ndị a. Kedu otu ọ si ajụ ZooKeeper maka nhazi? Ma ọ bụrụ na anyị chọrọ ịgbanwe nhazi, kedu ka anyị ga-esi gbanwee ya? Ma mgbe anyị gbanwere ya, olee otú ndị ọrụ ahụ anyị nwere si nweta ya?
ZooKeeper na-eme ka nke a dịtụ mfe. Dịka ọmụmaatụ, e nwere osisi znode anyị. Enwere ọnụ maka ngwa anyị ebe a, anyị na-emepụta oghere ọzọ na ya, nke nwere data sitere na nhazi. Ndị a nwere ike ma ọ bụ ghara ịbụ parampat dị iche iche. Ebe ọ bụ na nha dị ntakịrị, nhazi nhazi na-adịkarị ntakịrị, ya mere ọ ga-ekwe omume ịchekwa ya ebe a.
Ị na-eji usoro ahụ nwetaData iji nweta nhazi maka onye ọrụ site na ọnụ. Tọọ ka ọ bụrụ eziokwu. Ọ bụrụ n'ihi ihe ụfọdụ ọnụ ọnụ a adịghị, a ga-agwa anyị banyere ya mgbe ọ pụtara, ma ọ bụ mgbe ọ gbanwere. Ọ bụrụ na anyị chọrọ ịma na ihe agbanweela, anyị na-edozi ya ka ọ bụrụ eziokwu. Ma ọ bụrụ na data dị na ọnụ ọnụ a gbanwere, anyị ga-ama banyere ya.
Tọọ data. Anyị na-edozi data, setịpụ "-1", ya bụ, anyị anaghị elele ụdị ahụ, anyị na-eche na anyị na-enwe otu nhazi mgbe niile, ọ dịghị anyị mkpa ịchekwa ọtụtụ nhazi. Ọ bụrụ na ịchọrọ ịchekwa ọtụtụ ihe, ị ga-agbakwunye ọkwa ọzọ. N'ebe a, anyị kwenyere na ọ bụ naanị otu, ya mere anyị na-emelite naanị nke kachasị ọhụrụ, n'ihi ya, anyị anaghị elele ụdị ahụ. N'oge a, ndị ahịa niile ndị debanyere aha mbụ na-enweta ọkwa na ihe agbanweela na ọnụ a. Ma mgbe ha natachara ya, ha ga-arịọrịrị data ọzọ. Nkwupụta ahụ bụ na ha anaghị enweta data ahụ n'onwe ya, mana naanị ngosi mgbanwe. Mgbe nke a gasịrị, ha ga-arịọrịrị maka data ọhụrụ.

Nhọrọ nke abụọ maka iji primitive bụ otu onye. Anyị nwere ngwa ekesa, enwere ọtụtụ ndị ọrụ na anyị chọrọ ịghọta na ha niile nọ n'ọnọdụ. Ya mere, ha ga-edebanye aha onwe ha na ha na-arụ ọrụ na ngwa anyị. Ma anyị chọkwara ịchọpụta, site na usoro Nna-ukwu ma ọ bụ ebe ọzọ, gbasara ndị ọrụ niile na-arụsi ọrụ ike nke anyị nwere ugbu a.
Olee otú anyị ga-esi eme nke a? Maka ngwa ahụ, anyị na-emepụta ọnụ ndị ọrụ ma tinye sublevel n'ebe ahụ site na iji usoro ịmepụta. Enwere m mperi na slide ahụ. Ebe ị chọrọ n'usoro ezipụta, mgbe ahụ, a ga-ekepụta ndị ọrụ niile n'otu n'otu. Na ngwa, na-arịọ data niile gbasara ụmụaka nke ọnụ ọnụ a, na-enweta ndị ọrụ niile na-arụsi ọrụ ike dị.


Nke a bụ mmejuputa jọgburu onwe ya ka enwere ike ime nke a na koodu Java. Ka anyị malite site na njedebe, na isi usoro. Nke a bụ klas anyị, ka anyị mepụta usoro ya. Dị ka arụmụka mbụ anyị na-eji onye ọbịa, ebe anyị na-ejikọta, ya bụ, anyị na-edozi ya dị ka arụmụka. Na arụmụka nke abụọ bụ aha otu.
Kedu ka njikọ ahụ si eme? Nke a bụ ihe atụ dị mfe nke API eji. Ihe niile dị mfe ebe a. Enwere klaasị ZooKeeper. Anyị na-agafere ya ndị ọbịa. Ma tọọ oge nkwụsị ahụ, dịka ọmụmaatụ, ka ọ bụrụ sekọnd 5. Na anyị nwere onye otu a na-akpọ Njikọ Signal. N'ikpeazụ, anyị na-emepụta otu n'akụkụ ụzọ a na-ebufe. Anyị anaghị ede data ebe ahụ, n'agbanyeghị na enwere ike dee ihe. Na ọnụ ebe a bụ nke na-adịgide adịgide ụdị. N'ikpeazụ, nke a bụ ọnụ ọgụgụ nkịtị nke ga-adị mgbe niile. Nke a bụ ebe a na-emepụta nnọkọ ahụ. Nke a bụ mmejuputa iwu nke onye ahịa n'onwe ya. Onye ahịa anyị ga-eziga ozi oge ụfọdụ na-egosi na nnọkọ ahụ dị ndụ. Na mgbe anyị kwụsịrị nnọkọ ahụ, anyị na-akpọ nso na nke ahụ bụ ya, nnọkọ ahụ dara. Nke a bụ ma ọ bụrụ na ihe daapụrụ anyị, ka ZooKeeper chọpụta maka ya wee bepụ nnọkọ ahụ.

Kedu ka esi akpọchi akụrụngwa? N'ebe a, ihe niile dị ntakịrị mgbagwoju anya. Anyị nwere ndị ọrụ, enwere ụfọdụ akụrụngwa anyị chọrọ igbachi. Iji mee nke a, anyị na-emepụta ọnụ ụzọ dị iche, dịka ọmụmaatụ, nke a na-akpọ mkpọchi1. Ọ bụrụ na anyị nwere ike ịmepụta ya, mgbe ahụ anyị nwetara mkpọchi ebe a. Ma ọ bụrụ na anyị enweghị ike ịmepụta ya, mgbe ahụ, onye ọrụ ahụ na-agbalị ịnweta getData site na ebe a, na ebe ọ bụ na e meworị ọnụ ọnụ, mgbe ahụ, anyị na-etinye onye na-ekiri ebe a na oge ọnọdụ nke ọnụ ọnụ a gbanwere, anyị ga-ama banyere ya. Anyị nwekwara ike ịgbalị inwe oge iji megharịa ya. Ọ bụrụ na anyị ewere oghere a, were mkpọchi a, mgbe ahụ mgbe anyị enweghịzi mkpa mkpọchi ahụ, anyị ga-ahapụ ya, ebe ọ bụ na ọnụ ahụ dị naanị n'ime nnọkọ ahụ. N'ihi ya, ọ ga-apụ n'anya. Na onye ahịa ọzọ, n'ime usoro nke nnọkọ ọzọ, ga-enwe ike iburu mkpọchi na ọnụ ọnụ a, ma ọ bụ kama ọ ga-enweta ọkwa na ihe gbanwere ma ọ nwere ike ịnwa ime ya n'oge.

Ihe atụ ọzọ nke otu ị ga-esi họrọ onye isi. Nke a dị ntakịrị mgbagwoju anya, mana ọ dịkwa mfe. Kedu ihe na-eme ebe a? Enwere isi ọnụ nke na-achịkọta ndị ọrụ niile. Anyị na-agbalị ịnweta data gbasara onye ndu. Ọ bụrụ na nke a mere nke ọma, ya bụ, anyị natara ụfọdụ data, mgbe ahụ onye ọrụ anyị na-amalite iso onye ndu a. O kwenyere na enweelarị onye ndu.
Ọ bụrụ na onye ndu ahụ nwụrụ n'ihi ihe ụfọdụ, dịka ọmụmaatụ, daa, mgbe ahụ, anyị na-agbalị ịmepụta onye ndu ọhụrụ. Ma ọ bụrụ na anyị aga nke ọma, mgbe ahụ onye ọrụ anyị ga-abụ onye ndu. Ma ọ bụrụ na mmadụ n'oge a jisiri ike ịmepụta onye ndu ọhụrụ, mgbe ahụ, anyị na-agbalị ịghọta onye ọ bụ wee soro ya.
N'ebe a, ihe a na-akpọ mmetụta anụ ụlọ na-ebilite, ya bụ mmetụta anụ ụlọ, n'ihi na mgbe onye ndu nwụrụ, onye mbụ na oge ga-abụ onye ndú.

Mgbe ị na-ewere akụrụngwa, ị nwere ike ịgbalị iji ụzọ dịtụ iche, nke bụ nke a. Dịka ọmụmaatụ, anyị chọrọ ịnweta mkpọchi, mana enweghị mmetụta hert. Ọ ga-agụnye n'eziokwu na ngwa anyị na-arịọ ndepụta nke ids node niile maka ọnụ ọnụ dịlarị nwere mkpọchi. Ma ọ bụrụ na tupu ọnụ nke anyị mepụtara mkpọchi bụ nke kacha nta nke setịpụrụ anyị natara, mgbe ahụ nke a pụtara na anyị ejidewo mkpọchi ahụ. Anyị na-enyocha na anyị enwetala mkpọchi. Dịka nlele, a ga-enwe ọnọdụ na id anyị nwetara mgbe ị na-eke mkpọchi ọhụrụ pere mpe. Ma ọ bụrụ na anyị natara ya, anyị na-arụ ọrụ n'ihu.
Ọ bụrụ na enwere id nke dị ntakịrị karịa mkpọchi anyị, anyị na-etinye onye na-ekiri ihe omume a ma chere maka ngosi ruo mgbe ihe gbanwere. Ya bụ, anyị nwetara mkpọchi a. Ma ruo mgbe ọ ga-adapụ, anyị agaghị abụ id kacha nta ma agaghị enweta mkpọchi opekempe, yabụ anyị ga-enwe ike ịbanye. Ma ọ bụrụ na ọnọdụ a emezughị, mgbe ahụ, anyị na-aga ozugbo ebe a na-agbalị ịnweta mkpọchi a ọzọ, n'ihi na ihe nwere ike gbanwere n'oge a.

Kedu ihe ZooKeeper nwere? Enwere isi ihe 4. Nke a bụ usoro nhazi - Arịrịọ. Nakwa ZooKeeper Atomic Broadcast. Enwere ndekọ ndekọ ebe a na-edekọ ọrụ niile. Na In-memory Replicated DB n'onwe ya, ya bụ nchekwa data n'onwe ya ebe a na-echekwa osisi a dum.
Ọ dị mma ịmara na ọrụ ide ihe niile na-aga site na Request Processor. Ma gụọ ọrụ na-aga ozugbo na nchekwa data In-memory.

A na-emegharị nchekwa data n'onwe ya. Oge niile nke ZooKeeper na-echekwa otu data zuru oke.
Iji weghachi nchekwa data mgbe okuku gasịrị, enwere ndekọ nkwekọ. Omume ọkọlọtọ bụ na tupu data abanye na ebe nchekwa, edere ya n'ebe ahụ ka ọ bụrụ na ọ daa, enwere ike ịkpọghachi ndekọ a ma weghachite steeti sistemụ. A na-ejikwa foto nchekwa data oge ụfọdụ.

ZooKeeper Atomic Mgbasa ozi bụ ihe a na-eji na-edobe data oyiri.
ZAB n'ime na-ahọpụta onye ndu site na echiche nke ọnụ ZooKeeper. Ọnụ ụzọ ndị ọzọ na-aghọ ndị na-eso ụzọ ya ma na-atụ anya omume ụfọdụ n'aka ya. Ọ bụrụ na ha enweta ndenye, ha na-ebuga ha niile n'aka onye ndu. Ọ na-ebu ụzọ rụọ ọrụ ide wee ziga ozi gbasara ihe gbanwere nye ndị na-eso ụzọ ya. Nke a, n'ezie, a ga-emerịrị nke ọma, ya bụ, ndekọ na ọrụ mgbasa ozi nke ihe niile ga-emerịrị nke ọma, si otú ahụ na-ekwe nkwa ngbanwe data.
Ọ na-ahazi dee arịrịọ naanị. Isi ọrụ ya bụ na ọ na-agbanwe ọrụ ahụ ka ọ bụrụ mmelite azụmahịa. Nke a bụ arịrịọ emepụtara pụrụ iche.
Na ebe a, ọ dị mkpa iburu n'obi na idempotency nke mmelite maka otu ọrụ a na-ekwe nkwa. Kedu ihe ọ bụ? Ihe a, ma ọ bụrụ na emee ya ugboro abụọ, ga-enwe otu ọnọdụ ahụ, ya bụ, arịrịọ ahụ n'onwe ya agaghị agbanwe. Na nke a kwesịrị ime ka ọ bụrụ ihe mberede, ị nwere ike ịmalitegharị ọrụ ahụ, si otú a na-atụgharịghachi mgbanwe ndị dara n'oge a. N'okwu a, ọnọdụ nke usoro ahụ ga-abụ otu, ya bụ, ọ gaghị abụ na usoro nke otu, dịka ọmụmaatụ, usoro mmelite, dugara na steeti ikpeazụ dị iche iche nke usoro ahụ.








isi: www.habr.com
