mapreduce - ipd snelting · pdf filemapreduce. wozu mapreduce? problem: petabytes an daten,...
TRANSCRIPT
![Page 1: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/1.jpg)
www.kit.edu
IPD Snelting, Lehrstuhl Programmierparadigmen
KIT – Universitat des Landes Baden-Wurttemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft
Johann Volz
MapReduce
![Page 2: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/2.jpg)
Wozu MapReduce?
Problem: Petabytes an Daten, auf mehrere Computer verteilt,mussen verarbeitet oder analysiert werden
Beispiel: Wie oft kommen welche Worter in Textdateien (z.B.Suchlogs) vor?
Eigentliche Funktionalitat (Worter zahlen) trivial implementierbar
Aber wie verteilen?
MapReduce abstrahiert den Verteilungsvorgang
2 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 3: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/3.jpg)
Was ist MapReduce?
Beschrankung auf zwei Funktionen:MapReduce
Inspiriert durch map und reduce beim funktionalenProgrammieren
3 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 4: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/4.jpg)
Exkurs: Die map-Funktion beimfunktionalen Programmieren
Wendet Funktion f(x) auf alle Werte x einer Liste an und gibtdiese Werte als neue Liste zuruck
Gibt an, was getan wird, nicht wie
Funktion f wird dazu vom Programmierer definiert
4 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 5: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/5.jpg)
Exkurs: Die map-Funktion beimfunktionalen Programmieren
Es soll zu einer Liste mit Zahlen die Liste mit deren Quadraten erstelltwerden.
Imperativ:squares = []
for number in [1, 2, 3, 4]: squares.append(number**2)
Mit map:def f(x): return x**2
squares = map(f, [1, 2, 3, 4])
5 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 6: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/6.jpg)
Exkurs: die reduce-Funktion beimfunktionalen Programmieren
”Reduziert” anhand der Funktion g(x, y) Liste von Werten aufeinen einzigen Wert
g bekommt x als bisheriges reduce-Ergebnis, y als nachsten Wert
reduce(g, [a, b, c]) = g(g(a, b), c)
6 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 7: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/7.jpg)
Exkurs: die reduce-Funktion beimfunktionalen Programmieren
Es sollen alle Zahlen einer Liste addiert werden.
Imperativ:sum = 0
for number in [1, 2, 3, 4]: sum += number
Mit reduce:def g(x, y): return x + y
sum = reduce(g, [1, 2, 3, 4])
7 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 8: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/8.jpg)
Map bei MapReduce
Achtung: Entspricht grob f bei der funktionalen map-Funktion
Liest Schlussel-Wert-Paare
Bearbeitet die Daten
Gibt Schlussel-Wert-Paare aus
map:
Type1 key, Type2 value -> List<Type3, Type4> KVPairs
8 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 9: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/9.jpg)
Beispiel: Worter zahlen
MapEingabe
Schlussel: Dokument-IDWert: Inhalt
Ausgabe fur jedes Wort W im Dokumenten-InhaltSchlussel: Wort WWert: 1
9 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 10: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/10.jpg)
Reduce bei MapReduce
Entspricht g bei der funktionalen reduce-Funktion
Erhalt Daten aus dem Ergebnis der Map-Funktion
Aggregiert Werte gleichen Schlussels
reduce: Type3 key, List<Type4> values -> Type5 result
10 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 11: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/11.jpg)
Beispiel: Worter zahlen
MapEingabe
Schlussel: Dokument-IDWert: Inhalt
Ausgabe fur jedes Wort W im Dokumenten-InhaltSchlussel: Wort WWert: 1
ReduceEingabe: Wort als Schlussel, Werteliste zu diesem SchlusselAddiert alle Werte (1 + 1 + 1 + ...)Ergebnis ist die Gesamtzahl der Vorkommnisse dieses Wortes
11 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 12: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/12.jpg)
Vorteil von MapReduce
Map-Funktion fur einen Teil der Daten unabhangig vom Rest
Reduce-Funktion fur einen Schlussel unabhangig von anderenSchlusseln
⇒ Eine automatische Parallelisierung ist moglich!
12 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 13: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/13.jpg)
Beispiel: Distributed Grep
Dokumente sollen nach einem angegebenen regularen Ausdruck Rdurchsucht werden.
MapEingabe
Schlussel: Dokument-IDWert: Inhalt
Ausgabe bei Treffer fur R im DokumentSchlussel: Dokument-IDWert: true
ReduceIdentitatsfunktion: Gewunschtes Ergebnis ist als Schlussellistebereits vorhanden
13 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 14: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/14.jpg)
MapReduce bei Google
Eng verknupft mit Googles verteiltem Dateisystem GFS
Optimierung: bietet zusatzlich optionale Combine-Funktion
14 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 15: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/15.jpg)
MapReduce bei Google
Map-Worker Split 1
Local Disk
Intermediate 1
Map-Worker Split 2
Local Disk
Intermediate 2
Intermediate 3
External Disk
Split 3
read
write
read
write
read
Reduce-Worker
Reduce-Worker
Reduce-Worker
read
Final 1
Final 2
Final 3
write
write
write
Masterassign assign
15 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 16: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/16.jpg)
MapReduce bei Google
Implementierung mit hoher Fehlertoleranz gegen:
fehlerhafte Daten
fehlerhafte Programme
fehlerhafte Hardware
16 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 17: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/17.jpg)
Einsatzgebiete bei Google
“Googlers’ hammer for 80% of our data crunching”
Suchindex bauen
Suchlogs analysieren (Google Zeitgeist)
Satellitenbilder zusammenfugen
17 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 18: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/18.jpg)
Hadoop MapReduce
Freie Implementierung von MapReduce
Features orientieren sich stark an Google MapReduce
Lasst sich leicht lokal ausfuhren / debuggen
Wird von Amazon Web Services als Dienst (Elastic MapReduce)angeboten
18 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 19: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/19.jpg)
Fazit
Gut geeignet fur datenintensive Batch-Jobs mit unabhangigenOperationen
Ungeeignet fur Berechnungen mit Abhangigkeiten /Kommunikationsbedarf zwischen den Prozessen
Hadoop / Elastic MapReduce ermoglichen Verwendungaußerhalb von Google
19 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 20: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/20.jpg)
Fragen? Kommentare?
Links:
http://labs.google.com/papers/mapreduce.html
http://aws.amazon.com/elasticmapreduce/
http://hadoop.apache.org/
20 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 21: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/21.jpg)
Zusatz: Amazon Elastic MapReduce
Bietet Hadoop als Service an
Setzt auf Elastic Compute Cloud (EC2) und Simple StorageService (S3) auf
Keine Datenlokalitat!
Daten mussen zu Amazon hochgeladen und Ergebnisse wiederheruntergeladen werden
Kein Aufwand fur Hadoop-Setup
Abrechnung nach benutztem Speicherplatz undMaschinenstunden
21 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 22: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/22.jpg)
Zusatz: Amazon Elastic MapReduce -Architektur
Map-Worker
Map-Worker
S3
Split 1
Split 2
Split 3
Intermediate 1
Local Disk
Final 1
Final 2
Final 3
Local Disk
Intermediate 2
Intermediate 3
Reduce-Worker
Reduce-Worker
Reduce-Worker
read
write
read
Master
assign assign
22 27. Mai 2010 Johann Volz – MapReduce IPD Snelting
![Page 23: MapReduce - IPD Snelting · PDF fileMapReduce. Wozu MapReduce? Problem: Petabytes an Daten, auf mehrere Computer verteilt, mussen verarbeitet oder analysiert werden ... Beispiel: Distributed](https://reader031.vdocuments.pub/reader031/viewer/2022022420/5a797d977f8b9ade698c1e8f/html5/thumbnails/23.jpg)
Zusatz: Beispiel Satellitenbilderzusammenfugen
Map: Zuordnung von Bildern unterschiedlicher Anbieter zudiskreten Gebieten, konvertieren in einheitliches Format
Reduce: Zusammenfugen der Bilder fur jedes Gebiet
23 27. Mai 2010 Johann Volz – MapReduce IPD Snelting