MapReduce: forenklet databehandling på store klynger

MapReduce er en programmeringsmodel og en tilknyttet implementering til behandling og generering af store datasæt. Brugere angiver en kortfunktion, der behandler et nøgle/værdipar for at generere et sæt mellemnøgle/værdipar, og en reduktionsfunktion, der fletter alle mellemværdier, der er knyttet til den samme mellemnøgle. Mange virkelige verdensopgaver kan udtrykkes i denne model, som vist i papiret.

programmer skrevet i denne funktionelle stil paralleliseres automatisk og udføres på en stor klynge af råvaremaskiner. Run-time-systemet tager sig af detaljerne i partitionering af inputdataene, planlægning af programmets udførelse på tværs af et sæt maskiner, håndtering af maskinfejl og styring af den krævede kommunikation mellem maskiner. Dette gør det muligt for programmører uden erfaring med parallelle og distribuerede systemer nemt at udnytte ressourcerne i et stort distribueret system.

vores implementering af MapReduce kører på en stor klynge af råvaremaskiner og er meget skalerbar: en typisk MapReduce-beregning behandler mange terabyte data på tusinder af maskiner. Programmører finder systemet let at bruge: hundreder af MapReduce-programmer er implementeret, og op mod tusind MapReduce-job udføres på Googles klynger hver dag.

HTML-dias