Video: MapReduce - Computerphile 2025
MapReduce er et programmeringsparadigme, der er designet til at tillade parallel distribueret behandling af store sæt af data, konvertere dem til sæt af tupler, og derefter kombinere og reducere disse tupler i mindre sæt tupler. I layman's vilkår blev MapReduce designet til at tage store data og bruge parallelt distribueret computing til at konvertere store data til små eller regelmæssige data.
Parallelt distribueret behandling refererer til en kraftfuld ramme, hvor massemængder af data behandles meget hurtigt ved at distribuere behandlingsopgaver på tværs af klynger af råvareservere. Med hensyn til MapReduce, tuples henvises til nøgleværdipar, hvorved data grupperes, sorteres og behandles.
MapReduce job arbejder via kort og reducerer procesoperationssekvenser på tværs af et distribueret sæt af servere. I kortopgave delegerer du dine data til nøgleværdipar, forvandler det og filtrerer det. Derefter tildeler du dataene til knuder til behandling.
I reducere opgaven samler du dataene ned i mindre datasæt. Data fra reduktionstrinnet omdannes til et standard nøgleværdiformat - hvor -tasten fungerer som registreringsidentifikatoren og -værdien er den værdi, der identificeres ved nøglen. Klyngernes computerknuder behandler kortet og reducerer opgaver, der er defineret af brugeren. Dette arbejde udføres i overensstemmelse med følgende to trin:
-
Kort dataene.
De indgående data skal først delegeres til nøgleværdipar og opdelt i fragmenter, der derefter tildeles kortopgaver. Hver computerklynge - en gruppe af noder, der er forbundet til hinanden og udfører en fælles computergruppe - tildeles en række kortopgaver, der efterfølgende fordeles mellem sine noder.
Ved behandling af nøgleværdiparene genereres mellemliggende nøgleværdipar. De mellemliggende nøgleværdipar er sorteret efter deres nøgleværdier, og denne liste er opdelt i et nyt sæt af fragmenter. Uanset hvad du har for disse nye fragmenter, vil det være det samme som antallet af reducere opgaver.
-
Reducer dataene.
Hver reducere opgave har et fragment tildelt det. Den reducerede opgave behandler blot fragmentet og producerer en output, som også er et nøgleværdipar. Reducer opgaver er også fordelt mellem de forskellige knudepunkter. Når opgaven er afsluttet, skrives den endelige udgave på et filsystem.
Kort sagt kan du hurtigt og effektivt koge ned og begynde at give mening for et stort volumen, hastighed og forskellige data ved at bruge kort og reducere opgaver for at mærke dine data med (nøgle, værdi) par og reducere derefter disse par til mindre sæt data gennem aggregeringsoperationer - operationer, der kombinerer flere værdier fra et datasæt til en enkelt værdi.Et diagram af MapReduce arkitekturen findes her.
Hvis dine data ikke gør det muligt at blive mærket og behandlet via nøgler, værdier og aggregering, er kort og reduceret generelt ikke en god ide til dine behov.
Hvis du bruger MapReduce som en del af en Hadoop-løsning, skrives den endelige udgave på Hadoop Distributed File System (HDFS). HDFS er et filsystem, der omfatter klynger af råvareservere, der bruges til at gemme store data. HDFS gør stor databehandling og -lagring økonomisk gennemførlig ved at distribuere oplagringsopgaver på tværs af klynger af billige råvareservere.