Hva er MapReduce i Hadoop? Big Data Architecture

Hva er MapReduce i Hadoop?

MapReduce er et programvarerammeverk og programmeringsmodell som brukes til å behandle enorme mengder data. MapReduce programarbeid i to faser, nemlig Kart og Reduser. Kartoppgaver omhandler deling og kartlegging av data mens Reduce-oppgaver blander og reduserer dataene.

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

Innspillet til hver fase er nøkkelverdi par. I tillegg må hver programmerer spesifisere to funksjoner: kartfunksjon og redusere funksjon.

MapReduce Archilære i Big Data forklart med eksempel

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

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

Tenk på at du har følgende inndata for MapReduce-en din Big data program

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapReduce Architecture
MapReduce Architecture

Den endelige utgangen av MapReduce-oppgaven er

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

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

Inngangsdeler:

En input til en MapReduce i Big Data-jobb er delt inn i faste biter kalt inngangssplitter Input split er en del av input som forbrukes av et enkelt kart

Kartlegging

Dette er den aller første fasen i utførelsen av kartreduseringsprogrammet. I denne fasen blir data i hver splitt sendt til en kartleggingsfunksjon for å produsere utgangsverdier. I vårt eksempel er en jobb med kartleggingsfasen å telle et antall forekomster av hvert ord fra input-splitt (mer detaljer om input-split er gitt nedenfor) og utarbeide en liste i form av

stokking

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

Redusere

I denne fasen blir utdataverdier fra stokkingsfasen aggregert. Denne fasen kombinerer verdier fra stokkingsfasen og returnerer en enkelt utgangsverdi. Kort fortalt oppsummerer denne fasen hele datasettet.

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

MapReduce Architecture forklart i detalj

  • Det opprettes en kartoppgave for hver splitt som deretter utfører kartfunksjonen for hver post i delingen.
  • Det er alltid fordelaktig å ha flere delinger fordi tiden det tar å behandle en deling er liten sammenlignet med tiden det tar å behandle hele inndata. Når splittene er mindre, er behandlingen bedre å lastebalansert siden vi behandler splittene parallelt.
  • Det er imidlertid heller ikke ønskelig å ha splitter for små i størrelse. Når delingene er for små, begynner overbelastningen av å administrere delingene og opprettelse av kartoppgaver å dominere den totale jobbutførelsestiden.
  • For de fleste jobber er det bedre å lage en delt størrelse lik størrelsen på en HDFS-blokk (som er 64 MB, som standard).
  • Utførelse av kartoppgaver resulterer i skriving av utdata til en lokal disk på den respektive noden og ikke til HDFS.
  • Grunnen til å velge lokal disk fremfor HDFS er å unngå replikering som finner sted i tilfelle HDFS-lageroperasjon.
  • Kartutdata er mellomutdata som behandles av reduserte oppgaver for å produsere det endelige resultatet.
  • Når jobben er fullført, kan kartutdataene kastes. Så å lagre det i HDFS med replikering blir overkill.
  • I tilfelle av nodefeil, før kartutgangen forbrukes av reduksjonsoppgaven, kjører Hadoop kartoppgaven på nytt på en annen node og gjenoppretter kartutgangen.
  • Reduser-oppgaven fungerer ikke på begrepet datalokalitet. En utgang fra hver kartoppgave mates til reduksjonsoppgaven. Kartutdata overføres til maskinen der reduseringsoppgaven kjører.
  • På denne maskinen slås utdataene sammen og sendes deretter til den brukerdefinerte reduksjonsfunksjonen.
  • I motsetning til kartutdata, lagres redusere utdata i HDFS (den første replikaen er lagret på den lokale noden og andre replikaer lagres på off-rack noder). Så, skriv reduksjonsutgangen

Hvordan fungerer MapReduce Organizes?

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 (stokking, redusering)

som nevnt ovenfor.

Den komplette utførelsesprosessen (utførelse av kart- og reduksjonsoppgaver, begge) styres av to typer enheter kalt en

  1. Jobtracker: Fungerer som en Master (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 inn for utførelse i systemet, er det en Jobtracker som bor på Navnenode og det er det flere oppgavesporere som bor på Datanode.

Hvordan Hadoop MapReduce fungerer
Hvordan Hadoop MapReduce fungerer
  • En jobb er delt inn i flere oppgaver som deretter kjøres på flere datanoder i en klynge.
  • Det er jobbsporerens ansvar å koordinere aktiviteten ved å planlegge oppgaver til å kjøre på forskjellige datanoder.
  • Utførelse av individuell oppgave er da å ivareta av oppgavesporer, som ligger på hver datanode som utfører en del av jobben.
  • Oppgavesporerens ansvar er å sende fremdriftsrapporten til jobbsporeren.
  • I tillegg sender oppgavesporing med jevne mellomrom 'hjerteslag' signal til Jobtracker for å varsle ham om den nåværende tilstanden til systemet.
  • Dermed holder jobbsporing oversikt over den generelle fremdriften for hver jobb. I tilfelle oppgavefeil kan jobbsporingen omplanlegge den på en annen oppgavesporing.

Oppsummer dette innlegget med: