MapReduce

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

MapReduce este o paradigmă de programare folosită pentru procesarea unor cantități mari de date în mod paralel și distribuit pe un cluster.[1]

Un program MapReduce este compus dintr-o procedură Map() care selectează și sortează datele și o procedură Reduce() care îndeplinește operația de însumare a rezultatelor. Sistemul MapReduce administrează serverele distribuite, se asigură că diferitele sarcini sunt rulate în paralel, administrează comunicarea și tranferul de date dintre diferitele componente ale sistemului și oferă suport în cazul în care apar erori în sistem.

Modelul este inspirat din funcțiile Map și Reduce care apar în programarea funcțională, mai precis din programul Lisp [2], deși scopul lor în paradigma MapReduce este diferit față de cel din acest program.[3] Mai mult, contribuțiile cheie ale paradigmei MapReduce nu sunt procedurile Map și Reduce în sine, ci scalabilitatea (caracteristică a unui sistem informatic de a se comporta similar, fără defecțiuni, atunci când volumul de date pe care îl prelucrează devine mai mare) și rezistența la stres, obținute prin optimizare.

Librariile MapReduce sunt scrise în mai multe limbaje de programare. O implemetare foarte cunoscută este Apache Hadoop.

Referințe și note[modificare | modificare sursă]

  1. ^ Google spotlights data center inner workings | Tech news blog - CNET News.com
  2. ^ "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 Research
  3. ^ doi:10.1016/j.scico.2007.07.001
    Această referință va fi completată automat în următoarele minute. Puteți sări peste perioada de așteptare sau puteți extinde citarea manual