Hva er Distribuert hurtigbuffer i Hadoop?

Hadoop er et rammeverk som er åpen kildekode og bruker distribuert lagring samt behandling av enorme datasett ved bruk av HDFS og MapReduce. Den har NameNodes som lagrer metadataene og DataNodes som lagrer de faktiske dataene i HDFS. Når vi trenger å behandle de enorme datasettene, blir det gjort av et program skrevet av brukerne, og deretter blir behandlingen gjort parallelt i DataNodes. I Hadoop-rammeverket er det visse filer som trengs av MapReduce-jobbene ofte. Hvis det er antall kartverk som kjører, hver gang det kreves å lese filene fra HDFS, vil forsinkelsen øke, ettersom søketiden også øker. Så i stedet for å lese filene hver gang filene trengs, kan filene kopieres og sendes til alle DataNodes. Denne mekanismen kalles Distributed Cache i Hadoop.

Jobber med distribuert cache i Hadoop

  • Hadoop kopierer filene som er spesifisert av alternativene som –filer, -libjars og –arkiver til HDFS når en jobb startes. Deretter vil Node Manager kopiere filene fra HDFS til cachen slik at når en oppgave kjøres, kan den få tilgang til filene. Filene kan betegnes som lokaliserte når de kopieres til cachen eller den lokale disken.
  • I cachen opprettholdes tellingen av antall oppgaver som bruker hver fil som referanse av Node Manager. Referansetallet for filene blir 1 før oppgaven kjøres. Men etter at oppgaven har kjørt, reduseres tellingen med 1. Når tellingen blir 0, kan filen slettes da den ikke blir brukt. Når en nodes cache når sin bestemte størrelse, blir slettingen av en fil gjort slik at de nye filene kan imøtekommes. Størrelsen på hurtigbufferen kan endres i konfigurasjonsegenskapen. Størrelsen på den distribuerte cachen i Hadoop er som standard 10 GB.
  • MapReduce blir tregere enn cache i prosess hvis den har overhead. For å overvinne denne situasjonen kan den distribuerte cachen serialisere objektene, men selv dette har få problemer. Refleksjon er en prosess som brukes til å undersøke informasjonstypen i løpet av kjøretiden som er veldig treg. Dessuten blir det veldig vanskelig i serialisering der det lagrer det fullstendige klyngenavnet, klassens navn sammen med referanser til andre forekomster som er tilstede i medlemsvariablene.

Implementering av Hadoop i distribuert cache

  • For å bruke den distribuerte cachen for en applikasjon, må vi sørge for at for å distribuere en fil over nodene; filen skal være først tilgjengelig. Så vi må kopiere filene til HDFS, og vi må også sjekke at filen er tilgjengelig gjennom URI-er som kan bli funnet ved å gå inn på core-site.xml. Deretter kopierer MapReduce-jobben hurtigbufferfilen til alle nodene før oppgavene begynner å kjøre på disse nodene.
  • Så for å implementere distribuert cache, må vi kopiere filene til HDFS og vi kan sjekke om dette er gjort eller ikke gjennom hdfs dfs –put /path/samplefile.jar-kommandoen. Jobbkonfigurasjonen må også konfigureres for applikasjonen, og denne må legges til førerklassen.
  • Filene som bare er lesbare av eieren, går til privat cache, mens den delte cachen har filene som er verdensleselige. Filen som blir lagt til cachen blir brukt uten begrensning i alle maskinene i klyngen som en lokal fil. Nedenstående API-anrop kan brukes til å legge filene til i hurtigbufferen.

Kode:

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

Delingen av distribuerte hurtigbufferfiler på slaveknutene er avhengig av om de distribuerte hurtigbufferfilene er private eller offentlige. De private Distribuerte hurtigbufferfilene bufres i den lokale katalogen til brukeren som er privat for brukeren, og disse filene kreves av brukerens jobber. Når det gjelder de offentlige distribuerte cache-filene, blir filene bufret i den globale katalogen. Tilgang til filer i tilfelle offentlig cache er satt opp på en måte der de er synlige for alle brukerne. Den distribuerte hurtigbufferfilen blir også privat eller offentlig avhengig av tillatelsen til filsystemet.

Fordelene med Distribuert hurtigbuffer i Hadoop

Med bruken av den distribuerte cachen blir mange fordelaktige funksjoner lagt til Hadoop-rammeverket. Nedenfor er fordelene ved å bruke distribuert hurtigbuffer:

1. Distribuert hurtigbuffer i enkelt punkt av feil

I tilfelle svikt i en node, vil den ikke utføre den fullstendige cache-feilen. Fordi den distribuerte cachen kjører som en frittstående eller uavhengig prosess på tvers av de forskjellige nodene. Så hvis cache-feilen oppstår på en node, betyr det ikke at den komplette cachen også skal mislykkes.

2. Konsekvens av data

Ved bruk av Hash-algoritmen kan det bestemmes hvilke nøkkelverdipar som tilhører hvilken node. Dessuten overvåker eller sporer den distribuerte hurtigbufferen i Hadoop tidsstempelmodifiseringen som er gjort i hurtigbufferfilene, og den rapporterer at inntil jobben har utført, bør en fil ikke endres. Så dataene blir aldri inkonsekvente på grunn av den ene tilstanden til cache-klyngen.

3. Lagring av komplekse data

Den distribuerte hurtigbufferen i Hadoop-rammeverket gir fordelen ved å hurtigbufring av skrivebeskyttede filer som tekstfiler, krukkefiler osv. Og deretter kringkaste dem til dataknuter. På grunn av dette lagres en kopi av filen i hver datanode. Med den distribuerte cache-funksjonen distribueres og lagres komplekse filer som en krukke, etc.

Konklusjon

Distribuert cache gir effektivitet fordi filene kopieres en gang for hver jobb. Den har også kapasitet til å cache arkivene som ikke arkiveres på slaver. Bruken av distribuert cache er en ekstra bonus og er avhengig av utvikleren for å utnytte denne funksjonen best mulig.

Anbefalte artikler

Dette er en guide til Distribuert hurtigbuffer i Hadoop. Her diskuterer vi Hva er distribuert cache i Hadoop, dets arbeid, implementering og fordeler. Du kan også gå gjennom andre relaterte artikler for å lære mer -

  1. Fordeler med Hadoop
  2. Installer Hadoop
  3. Hva er Head in Git?
  4. Apache Hadoop økosystem
  5. Variabler i JavaScript

Kategori: