-{MapReduce}- je model programiranja pogodan za pretragu velikih skupova podataka.http://www.cnet.com/news/google-spotlights-data-center-inner-workings/http://static.googleusercontent.com/media/research.google.com/es/us/archive/mapreduce-osdi04.pdf

-{MapReduce}- program se sastoji od procedure mapiranja () koja obavlja filtriranje i sortiranje (na primer sortiranje studenata po imenu) i procedure redukovanja () koje obavlja zbirnu operaciju (na primer brojanje koliko ima studenata sa svakim imenom). -{MapReduce}- sistem se izvršava uz pomoć prikupljanja sa distibuiranih servera, paralelnog izvršavanja operacija, upravljanja tokom i prenosom podataka između različitih delova sistema, na taj način obezbeđujući osobine redudanse i robusnosti.

Model se zasniva na funkcijama mapiranja i redukovanja. One se najčešće koriste u funkcionalnom programiranju, ali je njihova svrha u okviru MapReduce drugačija."Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages." -"MapReduce: Simplified Data Processing on Large Clusters ", by Jeffrey Dean and Sanjay Ghemawat; from Google ResearchLämmel, R. (2008). "Google's Map Reduceprogramming model — Revisited". Science of Computer Programming 70: 1. doi:10.1016/j.scico.2007.07.001 Ključne prednosti -{MapReduce}- okvira su skalabilnost i robusnost. Dok sve prednosti MapReduce okvira mogu biti uočljive samo sa višenitnom implementacijom, jer jednonitna implementacija (na primer MongoDB) ne može biti brža od tradicionalnog (ne MapReduce) modela programiranja."MongoDB: Terrible MapReduce Performance". Stack Overflow. October 16, 2010. The MapReduce implementation in MongoDB has little to do with map reduce apparently. Because for all I read, it is single-threaded, while map-reduce is meant to be used highly parallel on a cluster. ... MongoDB MapReduce is single threaded on a single server... Upotreba ovog modela je opravdana samo ako su prisutne optimizovana distribuirana operacija -{shuffle}- (koja smanjuje troškove mrežne komunikacije) i osobina robusnosti. Optimizacija troškova komunikacije je takođe od velikog značaja za dobar -{MapReduce}- algoritam.Ullman, J. D. (2012). "Designing good MapReduce algorithms". XRDS: Crossroads, the ACM Magazine for Students (Association for Computing Machinery)

-{MapReduce}- biblioteke se pišu u različitim programskim jezicima, sa različitim nivoima optimizacije. Popularna implementacija otvorenog koda je deo Apači Hadupa. Pojam -{MapReduce}- prvobitno se odnosio samo na Guglovu tehnologiju, ali je kasnije poprimio generalno značenje.

Reference

Категорија:Računarstvo Категорија:Programiranje Категорија:Paralelni računarski sistemi Категорија:Дистрибуиране рачунарске архитектуре