MapReduce Iordache Sergiu 332CA [email_address]
Agenda <ul><li>Ce e MapReduce </li></ul><ul><li>Programare functională </li></ul><ul><li>Cum funcționează </li></ul><ul><l...
Ce e MapReduce? <ul><li>MapReduce – framework software pentru calcul distribuit pe arhitecturi MIMD (clustere/grid-uri) </...
Remember PP <ul><li>Map – aplică o funcție unei liste </li></ul><ul><li>Reduce – procesează o listă obținând un rezultat <...
 
Cum funcționeaza? <ul><li>Tipic rulat pe sute/mii de calculatoare “obișnuite” </li></ul><ul><li>Un master planifica worker...
Cum funcționeaza?(2) <ul><li>Datele sunt structurate in perechi (cheie, valoare) </li></ul><ul><li>Map(k_in, val) -> listă...
 
Toleranța la defecțiuni <ul><li>Exista mecanisme de tolerare a defecțiunilor </li></ul><ul><li>Sanse foarte mici sa de def...
Optimizări <ul><li>Duplicarea task-urilor spre finalul procesării. </li></ul><ul><li>Localizarea eficentă a datelor în sis...
Implementări Toate logo-urile sunt propietatea respectivelor companii ? CUDA Mars Cell BE FLOSS C mapreduce-cell Nokia FLO...
Exemplul clasic MapReduce <ul><li>map( String  name,  String  document):  </li></ul><ul><li>// key: document name  </li></...
Intrebări?
Link-uri <ul><li>http://en.wikipedia.org/wiki/MapReduce </li></ul><ul><li>http://labs.google.com/papers/mapreduce.html </l...
Surse poze <ul><li>(3)  http://www.flickr.com/photos/mybloodyself/501572092/ </li></ul><ul><li>(4)  http://www.flickr.com/...
Upcoming SlideShare
Loading in …5
×

Map Reduce

688 views
664 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
688
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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>

×