MapReduce: diferència entre les revisions

Contingut suprimit Contingut afegit
m neteja i estandardització de codi
Cap resum de modificació
Línia 18:
# '''Map''': cada node aplica la funció map sobre les dades locals i escriu l’output en un emmagatzemament temporal. Un node mestre s’assegura que només es processi una còpia de l’input data.
# '''Shuffle''': els nodes redistribueixen les dades basant-se en les claus de sortida de manera que totes les dades corresponents a una clau estiguin localitzades en el mateix node.
# '''RedueReduce''': cada node processa cada grup de dades resultants per clau en paral·lel.
 
El que permet MapReduce és fer el processament distribuït de les operacions de mapeig i reducció. Si les operacions de mapeig són independents les unes amb les altres, els maps es poden executar en paral·lel tot i que hi ha una limitació determinada per nombre de fonts de dades independents i el nombre de CPUs. De la mateixa manera, el conjunt de “reductors” poden realitzar la fase de reducció sempre que la fase de reducció sigui [[Propietat associativa|associativa]] o que totes les sortides de l’operació del map, que comparteixen la mateixa clau, es presentin en el mateix reductor, en el mateix temps. Tot i que aquest procés sol ser ineficient comparat amb altres algoritmes més seqüencials (ja que s’han d’executar múltiples instàncies del procés de reducció), el MapReduce pot ser aplicat sobre conjunts de dades amb un volum superior al que pot controlar un únic servidor bàsic. El paral·lelisme també ofereix la possibilitat de recuperar-se d’una falla parcial dels servidors o de l'emmagatzematge durant una operació, si un mapeig o un reductor fallar el treball es pot ser reprogramat.