Hvad er MapReduce i Hadoop?
MapReduce er en softwarestruktur og programmeringsmodel, der bruges til behandling af enorme mængder data. MapReduce programarbejde i to faser, nemlig Map og Reduce. Kortopgaver beskæftiger sig med opdeling og kortlægning af data, mens Reduktion af opgaver blandes og formindskes.
Hadoop er i stand til at køre MapReduce-programmer skrevet på forskellige sprog: Java, Ruby, Python og C ++. Programmerne for Map Reduce i cloud computing er parallelle i karakter og er derfor meget nyttige til udførelse af stor dataanalyse ved hjælp af flere maskiner i klyngen.
Input til hver fase er nøgleværdipar . Derudover skal hver programmør specificere to funktioner: kortfunktion og formindskelse af funktion .
I denne nybegynder Hadoop MapReduce-tutorial lærer du -
- Hvad er MapReduce i Hadoop?
- MapReduce Architecture in Big Data forklares detaljeret
- MapReduce Architecture forklaret detaljeret
- Hvordan MapReduce organiserer arbejde?
MapReduce Architecture in Big Data forklares detaljeret
Hele processen gennemgår fire faser af udførelsen, nemlig opdeling, kortlægning, blanding og reduktion.
Nu i denne MapReduce-tutorial, lad os forstå med et MapReduce-eksempel-
Overvej at du har følgende inputdata til dit MapReduce i Big data-program
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Den endelige output af MapReduce-opgaven er
dårligt | 1 |
Klasse | 1 |
godt | 1 |
Hadoop | 3 |
er | 2 |
til | 1 |
Velkommen | 1 |
Dataene går gennem de følgende faser af MapReduce i Big Data
Indgangssplits:
Et input til et MapReduce i Big Data-job er opdelt i stykker i fast størrelse kaldet input split.Input split er en del af det input, der forbruges af et enkelt kort
Kortlægning
Dette er den allerførste fase i udførelsen af kortreducerende program. I denne fase sendes data i hver split til en kortlægningsfunktion for at producere outputværdier. I vores eksempel er et job med kortlægningsfasen at tælle et antal forekomster af hvert ord fra inputopdelinger (flere detaljer om input-split er angivet nedenfor) og forberede en liste i form af
Bland
Denne fase forbruger output fra Mapping-fase. Dens opgave er at konsolidere de relevante poster fra Mapping fase output. I vores eksempel er de samme ord sammenkoblet sammen med deres respektive frekvens.
Reducerer
I denne fase aggregeres outputværdier fra blandefasen. Denne fase kombinerer værdier fra blandefase og returnerer en enkelt outputværdi. Kort fortalt opsummerer denne fase det komplette datasæt.
I vores eksempel aggregerer denne fase værdierne fra Blandefase, dvs. beregner de samlede forekomster af hvert ord.
MapReduce Architecture forklaret detaljeret
- Der oprettes en kortopgave for hver split, som derefter udfører kortfunktion for hver post i split.
- Det er altid fordelagtigt at have flere opdelinger, da det tager lille tid at behandle en opdeling sammenlignet med den tid, det tager at behandle hele input. Når splittelserne er mindre, er behandlingen bedre at afbalancere, da vi behandler splittelserne parallelt.
- Det er imidlertid heller ikke ønskeligt at have splittelser for små i størrelse. Når opdelinger er for små, begynder overbelastningen ved at styre opdelingen og oprettelse af kortopgaver at dominere den samlede jobudførelsestid.
- For de fleste job er det bedre at lave en delt størrelse svarende til størrelsen på en HDFS-blok (som standard er 64 MB).
- Udførelse af kortopgaver resulterer i skrivning af output til en lokal disk på den respektive knude og ikke til HDFS.
- Årsagen til at vælge lokal disk frem for HDFS er at undgå replikering, der finder sted i tilfælde af HDFS-butiksdrift.
- Kortoutput er mellemprodukt, som behandles ved at reducere opgaver for at producere den endelige output.
- Når jobbet er afsluttet, kan kortudgangen kastes. Så lagring af det i HDFS med replikering bliver overkill.
- I tilfælde af knudefejl, før kortoutputtet forbruges af reduceringsopgaven, kører Hadoop kortopgaven på en anden knude og genskaber kortoutputtet igen.
- Reducer opgave fungerer ikke på begrebet datalokalitet. En output fra hver kortopgave tilføres til reduceringsopgaven. Kortoutput overføres til maskinen, hvor kortere opgave kører.
- På denne maskine flettes output og sendes derefter til den brugerdefinerede reduceringsfunktion.
- I modsætning til kortoutputtet lagres reduceret output i HDFS (den første replika er gemt på den lokale node og andre replikaer er gemt på off-rack-noder). Så skriv reducer output
Hvordan MapReduce organiserer arbejde?
Nu i denne MapReduce-tutorial lærer vi, hvordan MapReduce fungerer
Hadoop opdeler jobbet i opgaver. Der er to typer opgaver:
- Kortopgaver (Splits & Mapping)
- Reducer opgaver (blander, reducerer)
som nævnt ovenfor.
Den komplette udførelsesproces (udførelse af Map og Reducer opgaver, begge) styres af to typer enheder kaldet a
- Jobtracker : Handler som en mester (ansvarlig for fuldstændig udførelse af indsendt job)
- Flere opgavesporere : Fungerer som slaver, hver af dem udfører jobbet
For hvert job, der sendes til udførelse i systemet, er der en Jobtracker, der er bosiddende på Namenode, og der er flere tasktrackere, der ligger på Datanode .

- Et job er opdelt i flere opgaver, som derefter køres på flere datanoder i en klynge.
- Det er jobsporers ansvar at koordinere aktiviteten ved at planlægge opgaver, der skal køre på forskellige datanoder.
- Udførelse af individuel opgave er derefter at passe på med task tracker, der er bosat på hver dataknude, der udfører en del af jobbet.
- Task trackers ansvar er at sende statusrapporten til jobtracker.
- Derudover sender task tracker periodisk 'hjerteslag' signal til Jobtracker for at underrette ham om systemets aktuelle tilstand.
- Jobtracker holder således styr på den samlede fremgang for hvert job. I tilfælde af opgavefejl kan jobsporeren omlægge den til en anden opgavesporing.