MapReduce: diferència entre les revisions

Contingut suprimit Contingut afegit
m Afegida Categoria:Enginyeria de programari usant HotCat
Robot estandarditza i catalanitza referències, catalanitza dates i fa altres canvis menors
Línia 3:
Un programa MapReduce es composa d'un [[Subrutina | procediment]] '''Map()''' que efectua el filtrat i ordenat (per exemple ordenar estudiants pel primer cognom en cues, amb una cua per cognom) i un[[subrutina | procediment]] '''Reduce()''', que fa l'operació d'agregació (com, per exemple, comptar el nombre d'estudiants a cada cua, obtenint-ne la freqüència dels cognoms). El "Sistema MapReduce" (també conegut com a ''infraestructura'' o ''framework'') orquestra el procés [[Serialització|serialitzant]] (''marshalling'' en anglès) els servidors distribuïts, executant diverses tasques en paral·lel, gestionant les comunicacions de transferència de dades entre les diverses parts del sistema i proporcionant [[redundància]] i [[tolerància a errors]].
 
El model s'inspira en les funcions ''map'' i ''reduce'' usades habitualment en la [[programació funcional]],<ref name="map">"Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages." -[http://research.google.com/archive/mapreduce.html "MapReduce: Simplified Data Processing on Large Clusters"], by Jeffrey Dean and Sanjay Ghemawat; from Google Research</ref> tot i que el seu propòsit dins el framework MapReduce no és el mateix que en la seva forma original. Les contribucions clau del framework MapReduce no són específicament les funcions map i reduce, sinó l'escalabilitat i la tolerància a errors que n'obtenen les aplicacions en optimitzar-se el motor d'execució un sol cop. Així, una implementació MapReduce d'un sol fil d'execució, com MongoDB, no acostuma a ser gaire més ràpida que la implementació "no MapReduce" habitual i cal implementar-ho en forma multi-fil per a notar-ne la millora.<ref name=stackoverflow>{{cite ref-web| url = https://stackoverflow.com/questions/3947889/mongodb-terrible-mapreduce-performance
| title títol= MongoDB: Terrible MapReduce Performance
| url = https://stackoverflow.com/questions/3947889/mongodb-terrible-mapreduce-performance
| publisher editor= Stack Overflow
| title = MongoDB: Terrible MapReduce Performance
|data= 16 octubre 2010
| publisher = Stack Overflow
| quote citació= 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...
| date = October 16, 2010
| quote = 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...
}}</ref> El benefici del model MapReduce es nota sobretot quan s'utilitza l'optimització d'execució distribuïda (que redueix els costos de comunicació de xarxa) i la tolerància a errors. Optimitzar el cost de les comunicacions de xarxa és essencial per a un bon algorisme MapReduce.