Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Map Reduce

820 views

Published on

Prezentare despre Map Reduce, framework-ul dezvoltat de Google pentru calcul distribuit

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Map Reduce

  1. 1. MapReduce Iordache Sergiu 332CA [email_address]
  2. 2. Agenda <ul><li>Ce e MapReduce </li></ul><ul><li>Programare functională </li></ul><ul><li>Cum funcționează </li></ul><ul><li>Toleranță la defecțiuni </li></ul><ul><li>Optimizări </li></ul><ul><li>Implementări </li></ul><ul><li>Exemplu MapReduce </li></ul>
  3. 3. Ce e MapReduce? <ul><li>MapReduce – framework software pentru calcul distribuit pe arhitecturi MIMD (clustere/grid-uri) </li></ul><ul><li>Google </li></ul><ul><li>Programare funcțională (Map și Reduce) </li></ul><ul><li>Procesare pe seturi foarte mari de date </li></ul><ul><li>Mecanisme de asigurare a unui calcul corect </li></ul>
  4. 4. Remember PP <ul><li>Map – aplică o funcție unei liste </li></ul><ul><li>Reduce – procesează o listă obținând un rezultat </li></ul><ul><li>Fără efecte laterale! </li></ul><ul><li>Rezultă paralelizare maximă. </li></ul>
  5. 6. Cum funcționeaza? <ul><li>Tipic rulat pe sute/mii de calculatoare “obișnuite” </li></ul><ul><li>Un master planifica workerii </li></ul><ul><li>De obicei mult mai multe task-uri decât mașini(oferă diverse avantaje) </li></ul>
  6. 7. Cum funcționeaza?(2) <ul><li>Datele sunt structurate in perechi (cheie, valoare) </li></ul><ul><li>Map(k_in, val) -> listă(k_out, val_intermediară) </li></ul><ul><li>Reduce(k_out, listă(val_intermediare)) -> listă(valori ieșire) </li></ul>
  7. 9. Toleranța la defecțiuni <ul><li>Exista mecanisme de tolerare a defecțiunilor </li></ul><ul><li>Sanse foarte mici sa de defecteze </li></ul><ul><li>master-ul(de obicei nu se tratează cazul) </li></ul><ul><li>Daca se defectează worker-ul se execută task-urile in progres sau cele efectuate. </li></ul>
  8. 10. Optimizări <ul><li>Duplicarea task-urilor spre finalul procesării. </li></ul><ul><li>Localizarea eficentă a datelor în sistemul distribuit. </li></ul><ul><li>Renunțarea prelucrării pentru programele care nu funcționează. </li></ul><ul><li>Ordonarea rezultatelor </li></ul><ul><li>Funcții de combinare </li></ul>
  9. 11. Implementări Toate logo-urile sunt propietatea respectivelor companii ? CUDA Mars Cell BE FLOSS C mapreduce-cell Nokia FLOSS Erlang + Python (jobs) Disco Comercial - Greenplum + HDFS FLOSS Java Hadoop + GFS Propietar C++ + Java/Python(jobs) Google Altele Licență Limbaj Nume
  10. 12. Exemplul clasic MapReduce <ul><li>map( String name, String document): </li></ul><ul><li>// key: document name </li></ul><ul><li>// value: document contents </li></ul><ul><li>for each word w in document: </li></ul><ul><li>EmitIntermediate(w, 1); </li></ul><ul><li>reduce( String word, Iterator partialCounts): </li></ul><ul><li>// key: a word </li></ul><ul><li>// values: a list of aggregated partial counts </li></ul><ul><li>int result = 0; </li></ul><ul><li>for each v in partialCounts: </li></ul><ul><li>result += ParseInt(v); </li></ul><ul><li>Emit(result); </li></ul>
  11. 13. Intrebări?
  12. 14. Link-uri <ul><li>http://en.wikipedia.org/wiki/MapReduce </li></ul><ul><li>http://labs.google.com/papers/mapreduce.html </li></ul><ul><li>http://wiki.apache.org/hadoop/HadoopMapReduce </li></ul>
  13. 15. Surse poze <ul><li>(3) http://www.flickr.com/photos/mybloodyself/501572092/ </li></ul><ul><li>(4) http://www.flickr.com/photos/88319047@N00/3148384136/ </li></ul><ul><li>(5,6,7) http://www.flickr.com/photos/antichrist/3427853501/ </li></ul><ul><li>(8,9) http://www.flickr.com/photos/bcostin/94192319/ </li></ul><ul><li>(13) http://www.flickr.com/photos/oberazzi/318947873/ </li></ul><ul><li>(1,2,12,14,15) http://www.flickr.com/photos/gavlart/2475205408/ </li></ul><ul><li>Poze sub licență Creative Commons </li></ul><ul><li>Prezentare sub licență Creative Commons Attribution-Noncommercial-Share Alike 2.0 </li></ul><ul><li>http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en </li></ul>

×