Map Reduce

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Map Reduce as PDF for free.

More details

  • Words: 342
  • Pages: 15
MapReduce Iordache Sergiu 332CA [email protected]

Agenda • • • • • • •

Ce e MapReduce Programare functională Cum funcționează Toleranță la defecțiuni Optimizări Implementări Exemplu MapReduce

Ce e MapReduce? • MapReduce – framework software pentru calcul distribuit pe arhitecturi MIMD (clustere/grid-uri) • Google • Programare funcțională (Map și Reduce) • Procesare pe seturi foarte mari de date • Mecanisme de asigurare a unui calcul corect

Remember PP • Map – aplică o funcție unei liste • Reduce – procesează o listă obținând un rezultat • Fără efecte laterale! • Rezultă paralelizare maximă.

Cum funcționeaza? • Tipic rulat pe sute/mii de calculatoare “obișnuite” • Un master planifica workerii • De obicei mult mai multe task-uri decât mașini(oferă diverse avantaje)

Cum funcționeaza?(2) • Datele sunt structurate in perechi (cheie, valoare) • Map(k_in, val) -> listă(k_out, val_intermediară) • Reduce(k_out, listă(val_intermediare)) -> listă(valori ieșire)

Toleranța la defecțiuni • Exista mecanisme de tolerare a defecțiunilor • Sanse foarte mici sa de defecteze master-ul(de obicei nu se tratează cazul) • Daca se defectează worker-ul se execută task-urile in progres sau cele efectuate.

Optimizări • Duplicarea task-urilor spre finalul procesării. • Localizarea eficentă a datelor în sistemul distribuit. • Renunțarea prelucrării pentru programele care nu funcționează. • Ordonarea rezultatelor • Funcții de combinare

Implementări Licență

Nume

Limbaj

Google Hadoop

C++ + Propietar Java/Python(jobs) Java FLOSS

Greenplum

-

Comercial

Disco

Erlang + Python (jobs) C

FLOSS

Nokia

FLOSS

Cell BE

CUDA

?

mapreducecell Mars

Altele + GFS + HDFS

Toate logo-urile sunt propietatea respectivelor companii

Exemplul clasic MapReduce map(String name, String document): // key: document name // value: document contents for each word w in document: EmitIntermediate(w, 1); reduce(String word, Iterator partialCounts): // key: a word // values: a list of aggregated partial counts int result = 0; for each v in partialCounts: result += ParseInt(v); Emit(result);

Intrebări?

Link-uri

• http://en.wikipedia.org/wiki/MapReduce • http://labs.google.com/papers/mapreduce.htm • http://wiki.apache.org/hadoop/HadoopMapRed

Surse poze • • • • • •

(3) http://www.flickr.com/photos/mybloodyself/501572092/ (4) http://www.flickr.com/photos/88319047@N00/3148384136/ (5,6,7) http://www.flickr.com/photos/antichrist/3427853501/ (8,9) http://www.flickr.com/photos/bcostin/94192319/ (13) http://www.flickr.com/photos/oberazzi/318947873/ (1,2,12,14,15) http://www.flickr.com/photos/gavlart/2475205408/ Poze sub licență Creative Commons Prezentare sub licență Creative Commons Attribution-NoncommercialShare Alike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en

Related Documents