Kaj je porazdeljeni predpomnilnik v Hadoopu?

Hadoop je okvir, ki je odprtokoden in uporablja porazdeljeno shranjevanje, pa tudi obdelavo ogromnih nizov podatkov z uporabo HDFS in MapReduce. Ima NameNodes, ki shranjujejo metapodatke in DataNodes, ki shranjujejo dejanske podatke v HDFS. Ko moramo obdelati ogromno nizov podatkov, to naredi program, ki ga napišejo uporabniki, nato pa obdelava poteka vzporedno v DataNodes. V okviru Hadoop obstajajo določene datoteke, ki jih opravila MapReduce pogosto potrebujejo. Če je na voljo število preslikav, se vsakič, ko je potrebno prebrati datoteke iz HDFS, zamuja, saj se čas povečanja išče. Torej, namesto da bi datoteke brali vsakič, ko so datoteke potrebne, jih je mogoče kopirati in poslati vsem DataNodes. Ta mehanizem se v Hadoopu imenuje porazdeljeni predpomnilnik.

Delo razdeljenega predpomnilnika v Hadoopu

  • Ob zagonu opravila Hadoop kopira datoteke, ki so določene z možnostmi, kot so –files, -libjars in –archives v HDFS. Nato bo upravitelj vozlov kopiral datoteke iz HDFS v predpomnilnik, tako da lahko, ko se opravilo opravi, dostopa do datotek. Datoteke lahko označimo kot lokalizirane, ko so kopirane v predpomnilnik ali lokalni disk.
  • V predpomnilniku upravljavec vozlišč šteje število opravil, ki uporabljajo vsako datoteko kot referenco. Pred začetkom naloge referenčno število datotek postane 1. Toda po opravljenem opravilu se število zmanjša za 1. Ko štetje postane 0, lahko datoteko izbrišete, saj se ne navadi. Ko predpomnilnik vozlišča doseže določeno velikost, se izbriše datoteka, tako da se lahko sprejmejo nove datoteke. Velikost predpomnilnika se lahko spremeni v lastnosti konfiguracije. Velikost razdeljenega predpomnilnika v Hadoopu je privzeto 10 GB.
  • MapReduce postane počasnejši od predpomnilnika, ki je v postopku, če ima previsoke stroške. Da bi premagali to situacijo, lahko porazdeljeni predpomnilnik predmete za serijsko serijo, vendar tudi to ima malo težav. Odsev je postopek, ki se uporablja za raziskovanje vrste informacij med časom izvajanja, ki je zelo počasen. Prav tako postane zelo težko pri serializaciji, kjer shrani celotno ime grozda, ime razreda skupaj s sklici na druge primere, ki so prisotni v spremenljivkah član.

Implementacija Hadoopa v razdeljenem predpomnilniku

  • Za uporabo porazdeljenega predpomnilnika za aplikacijo moramo poskrbeti za to, da bomo datoteko razdelili po vozliščih; datoteka mora biti najprej na voljo. Torej moramo datoteke kopirati v HDFS in tudi preveriti, ali je datoteka dostopna prek URI-jev, ki jih lahko najdemo z dostopom do jedra-site.xml. Nato opravilo MapReduce kopira datoteko predpomnilnika v vsa vozlišča, preden se naloge začnejo izvajati na teh vozliščih.
  • Torej, da bomo lahko implementirali razdeljeni predpomnilnik, moramo datoteke kopirati v HDFS in lahko preverimo, ali je to storjeno ali ne s pomočjo ukaza hdfs dfs –put /path/samplefile.jar. Za aplikacijo je treba nastaviti tudi Konfiguracijo opravila in to dodati v gonilni razred.
  • Datoteke, ki jih lahko bere samo lastnik, gredo v zasebni predpomnilnik, medtem ko imajo skupni predpomnilnik datoteke, ki jih je mogoče beriti po vsem svetu. Datoteka, ki se doda v predpomnilnik, se uporablja brez omejitev v vseh strojih v gruči kot lokalna datoteka. Spodnji klici API lahko uporabite za dodajanje datotek v predpomnilnik.

Koda:

DistributedCache.addCacheFile(URI, conf);
DistributedCache.setCacheFiles(URIs, conf);

Skupna raba datotek predpomnilnika v podrejenih vozliščih je odvisna od tega, ali so datoteke razdeljenega predpomnilnika zasebne ali javne. Zasebne datoteke porazdeljenega predpomnilnika se predpomnijo v lokalni imenik uporabnika, ki je zaseben za uporabnika, te datoteke pa zahtevajo opravila uporabnika. V primeru javnih distribuiranih datotek predpomnilnika se datoteke predpomnijo v globalnem imeniku. Dostop do datotek v primeru javnega predpomnilnika je postavljen tako, da so vidne vsem uporabnikom. Razdeljena datoteka predpomnilnika postane zasebna ali javna, odvisno od dovoljenja v datotečnem sistemu.

Prednosti distribuiranega predpomnilnika v Hadoopu

Z uporabo razporejenega predpomnilnika se v okvir Hadoop dodajo številne ugodne funkcije. Spodaj so prednosti uporabe razdeljenega predpomnilnika:

1. Razdeljeni predpomnilnik v enotni točki odpovedi

V primeru okvare vozlišča ne bo naredil popolne napake predpomnilnika. Ker razporejeni predpomnilnik poteka kot samostojen ali neodvisen postopek v različnih vozliščih. Če torej pride do okvare predpomnilnika na enem vozlišču, to še ne pomeni, da tudi celotni predpomnilnik ne bi smel.

2. Skladnost podatkov

Z uporabo algoritma Hash lahko določimo, kateri pari ključ-vrednost pripadajo kateremu vozlišču. Prav tako porazdeljeni predpomnilnik v Hadoopu spremlja ali sledi spremembi časovne žige, ki je narejena v predpomnilniških datotekah, in poroča, da se datoteka do izvršitve ne sme spremeniti. Tako podatki nikoli ne postanejo neskladni zaradi enega samega stanja predpomnilnega sklopa.

3. Shranjevanje zapletenih podatkov

Razdeljeni predpomnilnik v okviru Hadoop zagotavlja prednost predpomnjenja datotek, ki so samo za branje, kot so besedilne datoteke, jar datoteke itd., In jih nato oddaja v podatkovna vozlišča. Zaradi tega se kopija datoteke shrani v vsako podatkovno vozlišče. S funkcijo porazdeljenega predpomnilnika se zapletene datoteke, kot je kozarec itd., Razporedijo in shranijo.

Zaključek

Razdeljeni predpomnilnik zagotavlja učinkovitost, ker se datoteke kopirajo enkrat za vsako opravilo. Poleg tega ima sposobnost predpomnjenja arhivov, ki niso arhivirani na sužnjev. Uporaba porazdeljenega predpomnilnika je dodaten bonus in je odvisna od razvijalca, da to funkcijo najbolje izkoristi.

Priporočeni članki

To je vodnik za razdeljeni predpomnilnik v Hadoopu. Tukaj razpravljamo o tem, kaj se distribuira predpomnilnik v Hadoopu, njegovo delo, izvajanje in koristi. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Prednosti Hadoopa
  2. Namestite Hadoop
  3. Kaj je Head v Gitu?
  4. Ekosistem Apache Hadoop
  5. Spremenljivke v JavaScript

Kategorija: