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

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