Indholdsfortegnelse:
Video: MapReduce Tutorial | What is MapReduce | Hadoop MapReduce Tutorial | Edureka 2025
For at forstå Hadoop MapReduces evner er det vigtigt at skelne mellem MapReduce (algoritmen) og en implementering af MapReduce. Hadoop MapReduce er en implementering af algoritmen udviklet og vedligeholdt af Apache Hadoop projektet.
Det er nyttigt at tænke på denne implementering som en MapReduce-motor, for det er præcis, hvordan det fungerer. Du giver input (brændstof), motoren konverterer input til output hurtigt og effektivt, og du får svarene du har brug for.
Hadoop MapReduce indeholder flere faser, hver med et vigtigt sæt operationer, der hjælper med at nå dit mål for at få svarene du har brug for fra store data. Processen starter med en bruger anmodning om at køre et MapReduce-program og fortsætter, indtil resultaterne er skrevet tilbage til HDFS.
HDFS og MapReduce udfører deres arbejde på noder i en klynge, der er vært på racks af råvareservere. For at forenkle diskussionen viser diagrammet kun to noder.
Få de store data klar
Når en klient anmoder om et MapReduce-program til at køre, er det første skridt at finde og læse inputfilen med de rå data. Filformatet er fuldstændig vilkårlig, men dataene skal konverteres til noget, som programmet kan behandle. Dette er funktionen af InputFormat og RecordReader. InputFormat bestemmer, hvordan filen skal brydes i mindre stykker til behandling ved hjælp af en funktion, der hedder InputSplit.
Det tildeler derefter en RecordReader til at transformere de rå data til behandling af kortet. Adskillige typer af RecordReaders leveres med Hadoop, der tilbyder et bredt udvalg af konverteringsmuligheder. Denne funktion er en af de måder, Hadoop administrerer det store udvalg af datatyper, der findes i store dataproblemer.
Lad det store datakort begynde
Dine data er nu i en form, der er acceptabel at kortlægge. For hvert inputpar kaldes en særskilt forekomst af kort til at behandle dataene. Men hvad gør det med det behandlede output, og hvordan kan du holde styr på dem?
Kortet har to yderligere evner til at løse spørgsmålene. Fordi kort og reducere behovet for at arbejde sammen for at behandle dine data, skal programmet indsamle output fra de uafhængige mappere og sende det til reduktionsapparaterne. Denne opgave udføres af en OutputCollector. En Reporter-funktion giver også oplysninger hentet fra kortopgaver, så du ved, hvornår eller om kortopgaverne er færdige.
Alt dette arbejde udføres på flere noder i Hadoop-klyngen samtidigt.Du kan have tilfælde, hvor udgangen fra visse kortlægningsprocesser skal akkumuleres, før reduktionsmaterialerne kan begynde. Eller nogle af de mellemliggende resultater må muligvis behandles før reduktion.
Derudover kan nogle af denne udgang være på en node, der er forskellig fra noden, hvor reduktionsenhederne for den pågældende output vil køre. Indsamling og shuffling af mellemresultater udføres af en partitioner og en slags. Kortopgaverne leverer resultaterne til en bestemt partition som input til at reducere opgaverne.
Når alle kortopgaver er færdige, samles de mellemliggende resultater i partitionen, og der sker en shuffling, sortering af output for optimal behandling ved reduktion.
Reducer og kombiner for store data
For hvert outputpar kaldes reducere for at udføre sin opgave. På lignende måde at kortlægge, reducerer samler dens output, mens alle opgaverne behandles. Reducer kan ikke begynde, før hele kortlægningen er færdig. Udgangen af reducere er også en nøgle og en værdi. Mens dette er nødvendigt for at reducere for at gøre sit arbejde, er det måske ikke det mest effektive outputformat til din ansøgning.
Hadoop leverer en OutputFormat-funktion, og det virker meget som InputFormat. OutputFormat tager nøgleværdiparret og organiserer udgangen til skrivning til HDFS. Den sidste opgave er faktisk at skrive dataene til HDFS. Dette udføres af RecordWriter, og det fungerer på samme måde som RecordReader, undtagen i omvendt format. Det tager OutputFormat data og skriver det til HDFS i den form, der er nødvendig for kravene i programmet.
Samordningen af alle disse aktiviteter blev forvaltet i tidligere versioner af Hadoop af en jobplanlægger. Denne planlægger var rudimentær, og da blandingen af job ændrede sig og voksede, var det klart, at en anden tilgang var nødvendig. Den primære mangel i den gamle planlægger var manglen på ressourceforvaltning. Den nyeste version af Hadoop har denne nye kapacitet.
Hadoop MapReduce er hjertet af Hadoop-systemet. Det giver alle de funktioner, du har brug for til at bryde store data i håndterbare klumper, behandle dataene parallelt på din distribuerede klynge, og derefter gøre dataene tilgængelige for brugerforbrug eller yderligere behandling. Og det virker alt dette på en højspændende, fejltolerant måde. Dette er blot begyndelsen.