mapreduce - ipd snelting · pdf filemapreduce. wozu mapreduce? problem: petabytes an daten,...

23
www.kit.edu IPD Snelting, Lehrstuhl Programmierparadigmen KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft Johann Volz MapReduce

Upload: votram

Post on 06-Feb-2018

215 views

Category:

Documents


1 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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