Hva er MapReduce i Hadoop? Arkitektur - Eksempel

Innholdsfortegnelse:

Anonim

Hva er MapReduce i Hadoop?

MapReduce er et programvarerammeverk og programmeringsmodell som brukes til å behandle store mengder data. MapReduce programarbeid i to faser, nemlig Map og Reduce. Kartoppgaver håndterer splitting og kartlegging av data mens Reduser oppgaver bland og reduser dataene.

Hadoop er i stand til å kjøre MapReduce-programmer skrevet på forskjellige språk: Java, Ruby, Python og C ++. Programmene til Map Reduce i cloud computing er parallelle, og er derfor veldig nyttige for å utføre storskala dataanalyse ved å bruke flere maskiner i klyngen.

Inngangen til hver fase er nøkkelverdipar . I tillegg må hver programmerer spesifisere to funksjoner: kartfunksjon og redusert funksjon .

I denne nybegynner Hadoop MapReduce-opplæringen vil du lære-

  • Hva er MapReduce i Hadoop?
  • MapReduce Architecture in Big Data forklart i detalj
  • MapReduce Architecture forklart i detalj
  • Hvordan MapReduce organiserer arbeid?

MapReduce Architecture in Big Data forklart i detalj

Hele prosessen går gjennom fire utførelsesfaser, nemlig splitting, kartlegging, stokking og reduksjon.

Nå i denne MapReduce-opplæringen, la oss forstå det med et MapReduce-eksempel-

Vurder at du har følgende inndata for MapReduce i Big data-programmet

Welcome to Hadoop ClassHadoop is goodHadoop is bad

MapReduce Architecture

Den endelige utgangen av MapReduce-oppgaven er

dårlig 1
Klasse 1
god 1
Hadoop 3
er 2
til 1
Velkommen 1

Dataene går gjennom følgende faser av MapReduce i Big Data

Inngangssplitter:

En inngang til en MapReduce i Big Data-jobb er delt inn i faste størrelser kalt input splits Input split er en del av inngangen som forbrukes av et enkelt kart

Kartlegging

Dette er den aller første fasen i utførelsen av kartreduserende program. I denne fasen blir data i hver deling overført til en kartleggingsfunksjon for å produsere utdataverdier. I vårt eksempel er en jobb med kartleggingsfasen å telle et antall forekomster av hvert ord fra inndelinger (mer informasjon om inndeling er gitt nedenfor) og utarbeide en liste i form av

Shuffling

Denne fasen forbruker utdataene fra kartleggingsfasen. Dens oppgave er å konsolidere de aktuelle postene fra Mapping phase output. I vårt eksempel er de samme ordene sammenkoblet sammen med deres respektive frekvens.

Reduserer

I denne fasen blir utdataverdiene fra Shuffling-fasen samlet. Denne fasen kombinerer verdier fra tilfeldig fase og returnerer en enkelt utgangsverdi. Kort fortalt oppsummerer denne fasen det komplette datasettet.

I vårt eksempel samler denne fasen verdiene fra Shuffling-fasen, dvs. beregner totale forekomster av hvert ord.

MapReduce Architecture forklart i detalj

  • Det opprettes en kartoppgave for hver deling som deretter utfører kartfunksjon for hver post i delingen.
  • Det er alltid gunstig å ha flere splittelser fordi tiden det tar å behandle en splittelse er liten sammenlignet med tiden det tar å behandle hele inngangen. Når delene er mindre, er behandlingen bedre å balansere, siden vi behandler delene parallelt.
  • Imidlertid er det heller ikke ønskelig å ha splittelser for små i størrelse. Når splittelsene er for små, begynner overbelastningen av å administrere delingene og oppgavene for kartoppgave å dominere den totale jobben.
  • For de fleste jobber er det bedre å lage en delt størrelse som er lik størrelsen på en HDFS-blokk (som standard er 64 MB).
  • Utførelse av kartoppgaver resulterer i å skrive utdata til en lokal disk på den respektive noden og ikke til HDFS.
  • Årsaken til å velge lokal disk over HDFS er å unngå replikering som skjer i tilfelle HDFS-butikkdrift.
  • Kartutgang er mellomutgang som behandles ved å redusere oppgaver for å produsere den endelige utdata.
  • Når jobben er fullført, kan kartutgangen kastes. Så å lagre den i HDFS med replikering blir overkill.
  • I tilfelle nodefeil, før kartutgangen forbrukes av reduksjonsoppgaven, kjører Hadoop kartoppgaven på en annen node og oppretter kartutgangen på nytt.
  • Reduser oppgave fungerer ikke på begrepet datalokalitet. En utdata fra hver kartoppgave blir matet til reduksjonsoppgaven. Kartutgang overføres til maskinen der reduksjonsoppgaven kjører.
  • På denne maskinen blir utdataene slått sammen og deretter overført til den brukerdefinerte reduseringsfunksjonen.
  • I motsetning til kartutdata lagres redusert utdata i HDFS (den første kopien er lagret på den lokale noden og andre kopier er lagret på off-rack-noder). Så skriver du redusere produksjonen

Hvordan MapReduce organiserer arbeid?

Nå i denne MapReduce-opplæringen vil vi lære hvordan MapReduce fungerer

Hadoop deler opp jobben i oppgaver. Det er to typer oppgaver:

  1. Kartoppgaver (Splitter og kartlegging)
  2. Reduser oppgaver (Shuffling, Reducing)

som nevnt ovenfor.

Den komplette kjøringsprosessen (utførelse av Map og Reduser oppgaver, begge deler) styres av to typer enheter kalt a

  1. Jobtracker : Fungerer som en mester (ansvarlig for fullstendig utførelse av innsendt jobb)
  2. Flere oppgavesporere : Fungerer som slaver, hver av dem utfører jobben

For hver jobb som sendes ut for utføring i systemet, er det en Jobtracker som ligger på Namenode, og det er flere tasktrackers som ligger på Datanode .

Hvordan Hadoop MapReduce fungerer
  • En jobb er delt inn i flere oppgaver som deretter kjøres på flere datanoder i en klynge.
  • Det er jobbsøkerens ansvar å koordinere aktiviteten ved å planlegge oppgaver for å kjøre på forskjellige datanoder.
  • Utførelse av individuell oppgave er å passe på av oppgavesporing, som ligger på hver datanode som utfører en del av jobben.
  • Task trackers ansvar er å sende fremdriftsrapporten til jobbsporeren.
  • I tillegg sender oppgavesporing periodisk "hjerterytmesignal" til Jobtracker for å varsle ham om den nåværende tilstanden til systemet.
  • Dermed holder jobbsporeren oversikt over den totale fremdriften for hver jobb. I tilfelle oppgavesvikt, kan jobbsporeren planlegge den på en annen oppgavesporing.