Video: Introduction to Amazon Web Services by Leo Zhadanovsky 2025
MapReduce bliver i stigende grad nyttigt til store data. I begyndelsen af 2000'erne kiggede nogle ingeniører hos Google ind i fremtiden og fastslog, at mens deres nuværende løsninger til applikationer som webkrydsning, forespørgselsfrekvens og så videre var passende for de fleste eksisterende krav, var de utilstrækkelige for den kompleksitet, de forventede som Web skaleret til flere og flere brugere.
Disse ingeniører fastslog, at hvis arbejde kunne distribueres på tværs af billige computere og derefter tilsluttes på netværket i form af en "klynge", kunne de løse problemet. Distribution alene var ikke et tilstrækkeligt svar. Denne fordeling af arbejdet skal udføres parallelt af følgende tre grunde:
-
Behandlingen skal kunne udvides og indgå automatisk.
-
Behandlingen skal kunne fortsætte uanset fejl i netværket eller de enkelte systemer.
-
Udviklere, der udnytter denne tilgang, skal kunne skabe tjenester, der er lette at udnytte af andre udviklere. Derfor skal denne tilgang være uafhængig af, hvor data og beregninger har udført.
MapReduce blev designet som en generisk programmeringsmodel. Nogle af de oprindelige implementeringer leverede alle de væsentlige krav til parallel execution, fejltolerance, belastningsbalancering og data manipulation. Ingeniørerne med ansvar for projektet kaldte initiativet MapReduce, fordi det kombinerer to funktioner fra eksisterende funktionelle computersprog: kort og reducer .
Google-ingeniører designet MapReduce til at løse et bestemt praktisk problem. Derfor blev den designet som en programmeringsmodel kombineret med implementeringen af denne model - i det væsentlige en referenceimplementering.
Referenceimplementeringen blev brugt til at demonstrere konceptets anvendelighed og effektivitet og for at sikre, at denne model ville blive bredt vedtaget af computerindustrien. Gennem årene er andre implementeringer af MapReduce blevet oprettet og er tilgængelige som både open source og kommercielle produkter.