Što je distribuirana predmemorija u Hadoopu?

Hadoop je okvir otvorenog koda i koristi distribuiranu pohranu kao i obradu ogromnih skupova podataka koristeći HDFS i MapReduce. Ima NameNodes koji pohranjuju metapodatke i DataNodes koji pohranjuju stvarne podatke u HDFS. Kad trebamo obraditi ogromne skupove podataka, to radi program koji su napisali korisnici, a zatim se obrada paralelno vrši u DataNodovima. U okviru Hadoop-a postoje određene datoteke koje su često potrebne za MapReduce zadatke. Ako se pokreće broj preslikača, svaki put kada se mora čitati datoteke s HDFS-a, kašnjenje će se povećavati jer će se povećavati i vrijeme traženja. Dakle, umjesto čitanja datoteka svaki put kada su potrebne datoteke, datoteke se mogu kopirati i poslati svim DataNodesima. Ovaj mehanizam se naziva distribuirani predmemorija u Hadoopu.

Rad distribuirane predmemorije u Hadoopu

  • Hadoop kopira datoteke koje su određene opcijama poput -files, -libjars i –archives u HDFS prilikom pokretanja zadatka. Tada će upravitelj čvora kopirati datoteke s HDFS-a u predmemoriju tako da kad se izvrši zadatak, može pristupiti datotekama. Datoteke se mogu nazvati kao lokalizirane dok se kopiraju u predmemoriju ili lokalni disk.
  • U cache memoriji vodi računanje broja zadataka koji koriste svaku datoteku kao referencu. Broj referentnih datoteka postaje 1 prije nego što se zadatak pokrene. Ali nakon što zadatak izvrši, broj se smanjuje za 1. Kada brojanje postane 0, datoteku je moguće izbrisati jer se ne navikava. Kad predmemorija čvora dosegne određenu veličinu, uklanjanje datoteke vrši se tako da se nove datoteke mogu smjestiti. Veličina predmemorije može se promijeniti u svojstvu konfiguracije. Veličina distribuirane predmemorije u Hadoopu je zadanih 10 GB.
  • MapReduce postaje sporiji od predmemorije u obradi ako ima viška. Da bi se prevladala ova situacija, distribuirana predmemorija može serializirati objekte, ali čak i to ima malo problema. Refleksija je postupak koji se koristi za istraživanje vrste informacija tijekom vremena izvođenja koji je vrlo spor. Također, postaje vrlo teško u serializaciji gdje pohranjuje cjelovito ime klastera, naziv klase zajedno s referencama na druge instance prisutne u članskim varijablama.

Implementacija Hadoopa u distribuiranom predmemoriji

  • Za korištenje distribuirane predmemorije za neku aplikaciju, moramo se pobrinuti da bi mogli distribuirati datoteku po čvorovima; datoteka bi trebala biti prva dostupna. Dakle, moramo kopirati datoteke u HDFS, a trebamo provjeriti i je li datoteka dostupna putem URI-ova koji se mogu pronaći pristupom jezgri-site.xml. Tada zadatak MapReduce kopira datoteku predmemorije u sve čvorove prije nego što se zadaci počnu izvoditi na tim čvorovima.
  • Dakle, da bismo implementirali raspodjelu predmemoriju, moramo kopirati datoteke u HDFS i možemo provjeriti je li to učinjeno ili ne putem naredbe hdfs dfs –put /path/samplefile.jar. Također, Konfiguracija posla mora biti postavljena za aplikaciju i to treba dodati u vozačku klasu.
  • Datoteke koje može pročitati samo vlasnik, idu u privatnu predmemoriju dok zajednička predmemorija sadrži datoteke koje se mogu čitati širom svijeta. Datoteka koja se doda u predmemoriju koristi se bez ikakvih ograničenja u svim strojevima u klasteru kao lokalna datoteka. Dolje pozivi API-ja mogu se koristiti za dodavanje datoteka u predmemoriju.

Kodirati:

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

Dijeljenje datoteka distribuirane predmemorije na podređenim čvorovima ovisi o tome jesu li datoteke distribuirane predmemorije privatne ili javne. Privatne datoteke distribuirane predmemorije spremaju se u lokalni direktorij korisnika koji je privatan korisniku, a te datoteke zahtijevaju korisnički poslovi. U slučaju javnih distribuiranih datoteka predmemorije, datoteke se spremaju u globalni direktorij. Pristup datotekama u slučaju javne predmemorije postavljen je na način da su vidljive svim korisnicima. Također, distribuirana datoteka predmemorije postaje privatna ili javna, ovisno o dozvoli u datotečnom sustavu.

Prednosti distribuirane predmemorije u Hadoopu

Pomoću distribuirane predmemorije u okvir Hadoop dodaje se mnoštvo povoljnih značajki. Ispod su prednosti korištenja distribuirane predmemorije:

1. Distribuirana predmemorija u jednoj točki kvara

U slučaju kvara čvora, on neće napraviti potpunu grešku predmemorije. Budući da se distribuirana predmemorija odvija kao samostalni ili neovisni proces kroz različite čvorove. Ako se neuspjeh predmemorije dogodi na jednom čvoru, to ne znači da bi i cjelovita predmemorija trebala propasti.

2. Dosljednost podataka

Pomoću Hash algoritma može se utvrditi koji parovi ključ / vrijednost pripadaju kojem čvoru. Također, distribuirana predmemorija u Hadoopu nadgleda ili prati izmjenu vremenske oznake koja se vrši u datotekama predmemorije i izvješćuje da se datoteka sve dok se zadatak ne izvrši, datoteka ne smije mijenjati. Stoga podaci nikada ne postaju nedosljedni zbog jedinstvenog stanja cache clustera.

3. Pohrana složenih podataka

Distribuirana predmemorija u Hadoop okviru pruža prednost predmemoriranja datoteka samo za čitanje poput tekstualnih datoteka, jar datoteka i sl., A zatim ih emitira u čvorove podataka. Zbog toga se kopija datoteke pohranjuje u svaki čvor podataka. Pomoću značajke distribuirane predmemorije distribuiraju se i pohranjuju složene datoteke poput staklenke itd.

Zaključak

Distribuirana predmemorija omogućuje učinkovitost jer se datoteke jednom kopiraju za svaki posao. Također, ima kapacitet za spremanje arhiva koji nisu arhivirani na robovima. Upotreba distribuirane predmemorije dodatni je bonus i ovisi o programeru da najbolje iskoristi tu značajku.

Preporučeni članci

Ovo je vodič za distribuirani predmemoriju u Hadoopu. Ovdje smo razgovarali o tome što je distribuirana predmemorija u Hadoopu, njegov rad, implementacija, s prednostima. Možete i pregledati naše druge povezane članke da biste saznali više -

  1. Prednosti Hadoopa
  2. Instalirajte Hadoop
  3. Što je Head u Gitu?
  4. Ekosistem Apache Hadoop
  5. Varijable u JavaScript-u

Kategorija: