Video: Introduction to Amazon Web Services by Leo Zhadanovsky 2025
MapReduce blir stadig mer nyttig for store data. På begynnelsen av 2000-tallet så noen ingeniører på Google inn i fremtiden og bestemte seg for at mens deres nåværende løsninger for applikasjoner som webkryptering, spørringsfrekvens og så videre var tilstrekkelig for de fleste eksisterende krav, var de utilstrekkelige for kompleksiteten de forutså som web skalert til flere og flere brukere.
Disse ingeniører bestemte at hvis arbeid kunne distribueres over rimelige datamaskiner og deretter kobles til nettverket i form av en "klynge", kunne de løse problemet. Distribusjon alene var ikke et tilstrekkelig svar. Denne fordeling av arbeidet må utføres parallelt av følgende tre grunner:
-
Behandlingen må kunne utvides og avtales automatisk.
-
Behandlingen må kunne fortsette uavhengig av feil i nettverket eller de enkelte systemene.
-
Utviklere som utnytter denne tilnærmingen må kunne skape tjenester som er enkle å utnytte av andre utviklere. Derfor må denne tilnærmingen være uavhengig av hvor dataene og beregningene har utført.
MapReduce ble designet som en generell programmeringsmodell. Noen av de første implementeringene ga alle nøkkelkravene til parallell utførelse, feiltoleranse, lastbalansering og data manipulering. Ingeniørene med ansvar for prosjektet kalt initiativet MapReduce fordi det kombinerer to funksjoner fra eksisterende funksjonelle dataspråk: kart og reduser .
Google-ingeniører designet MapReduce for å løse et bestemt praktisk problem. Derfor ble den utformet som en programmeringsmodell kombinert med implementeringen av denne modellen - i hovedsak en referanseimplementering.
Referanseimplementasjonen ble brukt til å demonstrere konseptets praktiske og effektivitet og for å sikre at denne modellen vil bli utbredt av datamaskinindustrien. Gjennom årene har andre implementeringer av MapReduce blitt opprettet og er tilgjengelige som både åpen kildekode og kommersielle produkter.
