Hvordan MapReduce fungerer? - Arbeide, faser og fordelene med MapReduce

Innholdsfortegnelse:

Anonim

Introduksjon til MapReduce

MapReduce er en beregningskomponent i Hadoop Framework for enkelt å skrive applikasjoner som behandler store datamengder parallelt og lagret på store klynger av billige handelsmaskiner på en pålitelig og feiltolerant måte. I dette emnet skal vi lære om hvordan MapReduce fungerer?

MapReduce kan utføre distribuerte og parallelle beregninger ved bruk av store datasett over et stort antall noder. En MapReduce-jobb deler vanligvis inndatasettene og behandler deretter hver av dem uavhengig av kartoppgavene på en helt parallell måte. Utgangen blir deretter sortert og lagt inn for å redusere oppgaver. Både jobbinndata og -utgang lagres i filsystemer. Oppgaver planlegges og overvåkes av rammeverket.

Hvordan fungerer MapReduce?

MapReduce-arkitektur inneholder to kjernekomponenter som Daemon-tjenester som er ansvarlige for å kjøre mapper- og reduksjonsoppgaver, overvåke og utføre oppgavene på nytt. I Hadoop 2 og fremover er Resource Manager og Node Manager daemon-tjenestene. Når jobbklienten sender inn en MapReduce-jobb, kommer disse demonene til handling. De er også ansvarlige for parallell prosessering og feiltoleranse-funksjoner i MapReduce-jobber.

I Hadoop 2 blir ressursstyring og jobbplanlegging eller overvåking av funksjonaliteter adskilt av YARN (Yet Another Resource Negotiator) som forskjellige demoner. Sammenlignet med Hadoop 1 med Job Tracker og Task Tracker, inneholder Hadoop 2 en global ressurssjef (RM) og Application Masters (AM) for hver applikasjon.

  • Jobbklient sender jobben til ressurssjefen.
  • YARN Resource Managers planlegger er ansvarlig for koordineringen av ressursfordelingen av klyngen blant de kjørende applikasjonene.
  • YARN Node Manager kjører på hver node og utfører ressursstyring på nodenivå, koordinerer med ressurssjefen. Den lanserer og overvåker databeholderne på maskinen på klyngen.
  • Application Master hjelper ressursene fra Resource Manager og bruker Node Manager til å kjøre og koordinere MapReduce-oppgaver.

  • HDFS brukes vanligvis til å dele jobbfilene mellom andre enheter.

Faser av MapReduce-modellen

MapReduce-modellen har tre hovedfaser og en valgfri fase:

1. Kartlegger

  • Det er den første fasen av MapReduce-programmering og inneholder kodingslogikken til mapper-funksjonen.
  • Den betingede logikken brukes på 'n' antall datablokker spredt over forskjellige datanoder.
  • Mapper-funksjon aksepterer nøkkelverdipar som input som (k, v), der nøkkelen representerer forskyvningsadressen til hver post og verdien representerer hele postinnholdet.
  • Utgangen fra Mapper-fasen vil også være i nøkkelverdi-formatet som (k ', v').

2. Bland og sorter

  • Utdataene fra forskjellige kartleggere (k ', v') går deretter over i Shuffle and Sort-fase.
  • Alle duplikatverdiene fjernes, og forskjellige verdier grupperes sammen basert på lignende nøkler.
  • Utgangen fra Shuffle and Sort-fasen vil være nøkkelverdipar igjen som nøkkel og rekke verdier (k, v ()).

3. Reduserer

  • Utgangen fra Shuffle and Sort-fasen (k, v ()) vil være inngangen til Reducer-fasen.
  • I denne fasen reduseres funksjonens logikk, og alle verdiene blir aggregerte mot deres tilsvarende taster.
  • Reducer konsoliderer resultatene fra forskjellige kartleggere og beregner den endelige jobben.
  • Den endelige utskriften blir deretter skrevet til en enkelt fil i en utgangskatalog med HDFS.

4. Combiner

  • Det er en valgfri fase i MapReduce-modellen.
  • Combiner-fasen brukes til å optimalisere ytelsen til MapReduce-jobber.
  • I denne fasen reduseres forskjellige utganger fra kartleggere lokalt på knutepunktnivå.
  • Hvis for eksempel forskjellige mapper-utganger (k, v) som kommer fra en enkelt node inneholder duplikater, blir de kombinert, dvs. lokalt redusert som en enkelt (k, v ()) utgang.
  • Denne fasen gjør at arbeidet med blanding og sortering blir enda raskere og muliggjør ytterligere ytelse i MapReduce-jobber.

Alle disse fasene i en MapReduce-jobb kan avbildes som nedenfor:

For eksempel kan MapReduce-logikk for å finne ordtellingen på en rekke ord vises som nedenfor:

fruits_array = (eple, appelsin, eple, guava, druer, appelsin, eple)

  • Mapper-fase symboliserer inndata-ordet med ord i 'n' antall ord for å gi utdataene som (k, v). Tenk for eksempel på "eple". Kartutgang blir (eple, 1), (eple, 1), (eple, 1).
  • Bland og sorter aksepter mapper (k, v) -utgangen og gruppere alle verdiene i henhold til tastene deres som (k, v ()). dvs. (eple, (1, 1, 1)).
  • Reduseringsfasen aksepterer Shuffle og sorterer output og gir aggregatet av verdiene (eple, (1 + 1 + 1)), som tilsvarer nøklene deres. dvs. (eple, 3).

Spekulativ utførelse av MapReduce Work

Hastigheten til MapReduce er dominert av den tregeste oppgaven. Så for å øke hastigheten, vil en ny mapper fungere på samme datasett samtidig. Den som fullfører oppgaven først blir betraktet som den endelige utdata og den andre blir drept. Det er en optimaliseringsteknikk.

Fordelene med MapReduce

Her nevner fordelene ved MapReduce nedenfor

1. Feil-toleranse

  • Hvis en maskin som har noen få datablokker mislykkes, arkitektur i løpet av en kartreduserende jobb, håndterer feilen.
  • Den vurderer kopierte kopier av blokkene i alternative maskiner for videre behandling.

2. Motstandskraft

  • Hver node oppdaterer periodisk statusen til hovednoden.
  • Hvis en slaveknute ikke sender varselet sitt, tilordner hovednoden den for tiden kjørte oppgaven til den slaveknuten til andre tilgjengelige noder i klyngen.

3. Rask

  • Databehandling er rask ettersom MapReduce bruker HDFS som lagringssystem.
  • MapReduce tar minutter å behandle terabyte med ustrukturerte store datamengder.

4. Parallell behandling

  • MapReduce-oppgaver behandler flere biter av de samme datasettene parallelt ved å dele oppgavene.
  • Dette gir fordelen med å fullføre oppgaven på kortere tid.

5. Tilgjengelighet

  • Flere kopier av de samme dataene blir sendt til en rekke noder i nettverket.
  • I tilfelle feil, er andre kopier lett tilgjengelige for behandling uten tap.

6. Skalerbarhet

  • Hadoop er en høyst skalerbar plattform.
  • Tradisjonelle RDBMS-systemer er ikke skalerbare i henhold til økningen i datamengden.
  • MapReduce lar deg kjøre applikasjoner fra et stort antall noder, ved å bruke terabyte og petabyte med data.

7. Kostnadseffektiv

  • Hadoops skaleringsfunksjon sammen med MapReduce-programmering lar deg lagre og behandle data på en veldig effektiv og rimelig måte.
  • Kostnadsbesparelser kan være enorme som tall på hundrevis for terabyte med data.

Konklusjon - Hvordan MapReduce fungerer

Moderne data beveger seg mer mot den ustrukturerte typen, og enorme, konvensjonelle databehandlingsalternativer som RDBMS er enda vanskeligere, tidkrevende og kostbar. Men Hadoops MapReduce-programmering er mye effektiv, tryggere og raskere når det gjelder å behandle store datasett med til og med terabyte eller petabyte.

Anbefalte artikler

Dette er en guide til hvordan MapReduce fungerer. Her diskuterer vi faser av MapReduce-modellen med fordeler og hvordan fungerer den. Du kan også se på følgende artikler for å lære mer -

  1. Hadoop økosystemkomponenter
  2. MapReduce algoritmer
  3. Hva er MapReduce i Hadoop?
  4. MapReduce Interview Questions