Introduktion til MapReduce
MapReduce er en beregningskomponent i Hadoop Framework til let at skrive applikationer, der behandler store mængder data parallelt og opbevares på store klynger af billige råvarer, på en pålidelig og fejltolerant måde. I dette emne skal vi lære om, hvordan MapReduce fungerer?
MapReduce kan udføre distribuerede og parallelle beregninger ved hjælp af store datasæt på tværs af et stort antal noder. Et MapReduce-job opdeler normalt inputdatasættene og behandler derefter hver af dem uafhængigt af Map-opgaverne på en helt parallel måde. Outputet sorteres derefter og indtastes for at reducere opgaver. Både jobinput og output lagres i filsystemer. Opgaver planlægges og overvåges af rammen.
Hvordan fungerer MapReduce?
MapReduce-arkitektur indeholder to kernekomponenter som Daemon-tjenester, der er ansvarlige for at køre kortlægnings- og reduceringsopgaver, overvågning og genudførelse af opgaverne ved fejl. I Hadoop 2 og fremefter er Resource Manager og Node Manager dememon-tjenesterne. Når jobklienten indsender et MapReduce-job, kommer disse dæmoner til handling. De er også ansvarlige for parallel behandling og fejltolerancefunktioner i MapReduce-job.
I Hadoop 2 og fremefter er ressourcestyring og jobplanlægning eller overvågning af funktionaliteter adskilt af YARN (Yet Another Resource Negotiator) som forskellige dæmoner. Sammenlignet med Hadoop 1 med Job Tracker og Task Tracker indeholder Hadoop 2 en global Resource Manager (RM) og Application Masters (AM) til hver applikation.
- Jobklient sender jobbet til Ressource Manager.
- YARN Resource Manager's scheduler er ansvarlig for koordineringen af ressourcetildelingen af klyngen blandt de kørende applikationer.
- YARN Node Manager kører på hver node og udfører ressourcestyring på knudeplan og koordinerer med Resource manager. Den lancerer og overvåger computerbeholdere på maskinen på klyngen.
- Application Master hjælper ressourcerne fra Resource Manager og bruger Node Manager til at køre og koordinere MapReduce-opgaver.
- HDFS bruges normalt til at dele jobfilerne mellem andre enheder.
Faser af MapReduce-modellen
MapReduce-modellen har tre større og en valgfri fase:
1. Kortlægning
- Det er den første fase af MapReduce-programmering og indeholder kodningslogikken for kortfunktionen.
- Den betingede logik anvendes til 'n' antal datablokke spredt over forskellige dataknudepunkter.
- Mapper-funktion accepterer nøgleværdipar som input som (k, v), hvor nøglen repræsenterer offset-adressen for hver post, og værdien repræsenterer hele recordindholdet.
- Outputet fra Mapper-fasen vil også være i nøgleværdieformatet som (k ', v').
2. Bland og sorter
- Outputet fra forskellige kortlæggere (k ', v') går derefter i Shuffle and Sort-fase.
- Alle duplikatværdier fjernes, og forskellige værdier grupperes sammen baseret på lignende taster.
- Outputet fra Shuffle and Sort-fasen vil være nøgleværdipar igen som nøgle og matrix af værdier (k, v ()).
3. Reducer
- Outputet fra Shuffle and Sort-fasen (k, v ()) vil være input til reduktionsfasen.
- I denne fase reduceres funktionens logik, og alle værdier aggregeres mod deres tilsvarende taster.
- Reducer konsoliderer output fra forskellige kortlægninger og beregner den endelige jobproduktion.
- Den endelige output skrives derefter til en enkelt fil i et outputmappe med HDFS.
4. Combiner
- Det er en valgfri fase i MapReduce-modellen.
- Combiner-fasen bruges til at optimere ydeevnen til MapReduce-job.
- I denne fase reduceres forskellige udgange af kortlæggere lokalt på knudepunktniveauet.
- For eksempel, hvis forskellige kortlægningsudgange (k, v), der kommer fra en enkelt knude, indeholder duplikater, kombineres de, dvs. lokalt reduceret som et enkelt (k, v ()) output.
- Denne fase gør shuffle- og sorteringsfasen endnu hurtigere og muliggør yderligere ydelse i MapReduce-job.
Alle disse faser i et MapReduce-job kan afbildes som nedenfor:
MapReduce-logik for at finde ordtællingen på en række ord kan for eksempel vises som nedenfor:
fruits_array = (æble, appelsin, æble, guava, druer, appelsin, æble)
- Mapper-fase symboliserer inputmatrixen af ord i 'n' antal ord for at give output som (k, v). Overvej for eksempel 'æble'. Mapperoutput er (æble, 1), (æble, 1), (æble, 1).
- Shuffle and Sort accepterer mapper (k, v) output og grupperer alle værdier i henhold til deres taster som (k, v ()). dvs. (æble, (1, 1, 1)).
- Reducer-fasen accepterer blanding og sortering af output og giver aggregatet af værdierne (æble, (1 + 1 + 1)), svarende til deres taster. dvs. (æble, 3).
Spekulativ udførelse af MapReduce-arbejde
Hastigheden af MapReduce domineres af den langsomste opgave. Så for at øge hastigheden fungerer en ny kortlægger på det samme datasæt på samme tid. Uanset hvad der først udfører opgaven, betragtes det som den endelige output, og den anden bliver dræbt. Det er en optimeringsteknik.
Fordelene ved MapReduce
Her nævnes fordelene ved MapReduce nedenfor
1. Fejltolerance
- I midten af et kortreduktionsjob, håndterer fejlen, hvis en maskine, der bærer nogle få datablokke, mislykkes.
- Den betragter replikerede kopier af blokke i alternative maskiner til videre behandling.
2. Modstandsdygtighed
- Hver node opdaterer med jævne mellemrum sin status til hovednoden.
- Hvis en slaveknude ikke sender sin anmeldelse, tildeler masternoden den aktuelt kørte opgave for den pågældende slaveknude til andre tilgængelige noder i klyngen.
3. Hurtig
- Databehandling er hurtig, da MapReduce bruger HDFS som lagringssystem.
- MapReduce tager minutter at behandle terabyte med ustrukturerede store datamængder.
4. Parallel behandling
- MapReduce-opgaver behandler flere bunker af de samme datasæt parallelt ved at dele opgaverne.
- Dette giver fordelen ved færdiggørelse af opgaver på kortere tid.
5. Tilgængelighed
- Flere kopier af de samme data sendes til adskillige noder i netværket.
- I tilfælde af fejl er andre kopier således let tilgængelige til behandling uden tab.
6. Skalerbarhed
- Hadoop er en meget skalerbar platform.
- Traditionelle RDBMS-systemer kan ikke skaleres i henhold til stigningen i datavolumen.
- MapReduce giver dig mulighed for at køre applikationer fra et stort antal noder ved hjælp af terabytes og petabytes af data.
7. Omkostningseffektivt
- Hadoops skaleringsfunktion sammen med MapReduce-programmering giver dig mulighed for at gemme og behandle data på en meget effektiv og overkommelig måde.
- Omkostningsbesparelser kan være enorme som tal på hundreder for terabyte med data.
Konklusion - Hvordan MapReduce fungerer
Moderne data bevæger sig mere i retning af den ustrukturerede type, og enorme, konventionelle databehandlingsmuligheder som RDBMS er endnu vanskeligere, tidskrævende og kostbar. Men Hadoops MapReduce-programmering er meget effektiv, sikrere og hurtigere til behandling af store datasæt af endda terabyte eller petabyte.
Anbefalede artikler
Dette er en guide til, hvordan MapReduce fungerer. Her diskuterer vi faser af MapReduce-modellen med fordele og hvordan fungerer den. Du kan også se på de følgende artikler for at lære mere -
- Hadoop økosystemkomponenter
- MapReduce algoritmer
- Hvad er MapReduce i Hadoop?
- MapReduce Interview spørgsmål