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

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:
- Kartoppgaver (Splitter og kartlegging)
- 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
- Jobtracker: Fungerer som en Master (ansvarlig for fullstendig utførelse av innsendt jobb)
- 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.

- 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.
