Hvad er MapReduce i Hadoop? Big Data Architecture
Hvad er MapReduce i Hadoop?
KortReducer er en softwareramme og programmeringsmodel, der bruges til at behandle enorme mængder data. KortReducer programarbejde i to faser, nemlig Kort og Reducer. Kortopgaver omhandler opdeling og kortlægning af data, mens Reducer-opgaver blander og reducerer dataene.
Hadoop er i stand til at køre MapReduce-programmer skrevet på forskellige sprog: Java, Rubin, Pythonog C++. Programmerne i Map Reduce i cloud computing er parallelle i naturen, og er derfor meget nyttige til at udføre dataanalyse i stor skala ved hjælp af flere maskiner i klyngen.
Input til hver fase er nøgleværdi par. Derudover skal hver programmør specificere to funktioner: kort funktion og reducere funktionen.
KortReducer Architecture i Big Data forklaret med eksempel
Hele processen går gennem fire faser af eksekvering, nemlig opdeling, kortlægning, shuffling og reduktion.
Lad os nu i denne MapReduce-tutorial forstå med et MapReduce-eksempel–
Overvej, at du har følgende inputdata til din MapReduce in Big data program
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Det endelige output af MapReduce-opgaven er
dårlig | 1 |
Klasse | 1 |
godt | 1 |
Hadoop | 3 |
is | 2 |
til | 1 |
Velkommen! | 1 |
Dataene gennemgår følgende faser af MapReduce i Big Data
Input opdelinger:
Et input til et MapReduce i Big Data-job er opdelt i stykker med fast størrelse kaldet input splits Input split er en del af inputtet, der forbruges af et enkelt kort
Kortlægning
Dette er den allerførste fase i udførelsen af kort-reducer programmet. I denne fase overføres data i hver opdeling til en kortlægningsfunktion for at producere outputværdier. I vores eksempel er en opgave med kortlægningsfasen at tælle et antal forekomster af hvert ord fra input-opdelinger (flere detaljer om input-split er givet nedenfor) og udarbejde en liste i form af
shuffling
Denne fase forbruger output fra kortlægningsfasen. Dens opgave er at konsolidere de relevante poster fra Mapping phase output. I vores eksempel er de samme ord klubbet sammen med deres respektive frekvens.
Reduktion
I denne fase aggregeres outputværdier fra blandingsfasen. Denne fase kombinerer værdier fra blandingsfasen og returnerer en enkelt outputværdi. Kort sagt opsummerer denne fase det komplette datasæt.
I vores eksempel samler denne fase værdierne fra blandingsfasen, dvs. beregner den samlede forekomst af hvert ord.
KortReducer Architecture forklaret i detaljer
- Der oprettes en kortopgave for hver opdeling, som derefter udfører en kortfunktion for hver post i opdelingen.
- Det er altid en fordel at have flere opdelinger, fordi den tid, det tager at behandle en opdeling, er lille sammenlignet med den tid, det tager at behandle hele inputtet. Når opdelingerne er mindre, er behandlingen bedre at belastningsbalanceret, da vi behandler opdelingerne parallelt.
- Det er dog heller ikke ønskeligt at have spalter for små i størrelsen. Når opdelingerne er for små, begynder overbelastningen af at administrere opdelingerne og oprettelse af kortopgaver at dominere den samlede jobudførelsestid.
- For de fleste job er det bedre at lave en opdelt størrelse svarende til størrelsen på en HDFS-blok (som er 64 MB som standard).
- Udførelse af kortopgaver resulterer i skrivning af output til en lokal disk på den respektive node og ikke til HDFS.
- Grunden til at vælge lokal disk frem for HDFS er at undgå replikering, som finder sted i tilfælde af HDFS-lagerdrift.
- Kortoutput er mellemoutput, som behandles ved at reducere opgaver for at producere det endelige output.
- Når jobbet er færdigt, kan kortoutputtet smides væk. Så at gemme det i HDFS med replikering bliver overkill.
- I tilfælde af knudefejl, før kortoutputtet forbruges af reduktionsopgaven, kører Hadoop kortopgaven igen på en anden node og genskaber kortoutputtet.
- Reducer-opgaven virker ikke på begrebet datalokalitet. Et output fra hver kortopgave føres til reduktionsopgaven. Kortoutput overføres til den maskine, hvor reduktionsopgaven kører.
- På denne maskine flettes outputtet og sendes derefter til den brugerdefinerede reduktionsfunktion.
- I modsætning til kortoutput gemmes reducere output i HDFS (den første replika er gemt på den lokale node, og andre replikaer gemmes på off-rack noder). Så skriv reducere output
Hvordan fungerer MapReduce Organizes?
Nu i denne MapReduce-tutorial lærer vi, hvordan MapReduce fungerer
Hadoop opdeler jobbet i opgaver. Der er to typer opgaver:
- Kort opgaver (Opdelinger og kortlægning)
- Reducer opgaver (Blander, reducerer)
som nævnt ovenfor.
Den komplette udførelsesproces (udførelse af kort- og reduktionsopgaver, begge) styres af to typer entiteter kaldet en
- Jobtracker: Fungerer som en Master (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 et Jobtracker der bor på Navnenode og der er flere tasktrackere som bor på Datanode.
- Et job er opdelt i flere opgaver, som derefter køres på flere dataknudepunkter i en klynge.
- Det er jobtrackerens ansvar at koordinere aktiviteten ved at planlægge opgaver til at køre på forskellige dataknudepunkter.
- Udførelse af individuelle opgaver skal derefter passes af opgavesporingen, som ligger på hver dataknude, der udfører en del af jobbet.
- Task trackers ansvar er at sende statusrapporten til job trackeren.
- Derudover sender opgavesporer med jævne mellemrum 'hjerteslag' signal til Jobtrackeren for at give ham besked om den aktuelle tilstand af systemet.
- Således holder jobtracker styr på det overordnede fremskridt for hvert job. I tilfælde af opgavefejl kan jobtrackeren omplanlægge den på en anden opgavetracker.