MapReduce programming model Astrid Rheinländer & Stefan Bethge
Astrid Rheinländer & Stefan Bethge - MapReduce Bottlenecks „Stragglers“ Tasks, die länger als die meisten anderen benötigen Backup-Tasks Unnötig lange Netzwerkpfade (Locality) Performance
Astrid Rheinländer & Stefan Bethge - MapReduce Locality (1)
Astrid Rheinländer & Stefan Bethge - MapReduce Locality (2)
Astrid Rheinländer & Stefan Bethge - MapReduce Implementierungen (1) Hadoop Open source, größter Teil von Yahoo entwickelt allgemein etwas schlechtere Performance als Googles Implementation Greenplum Kommerziell Modifiziertes PostgreSQL für parallele verarbeitung, MapReduce integriert für Analyse CouchDB Dokument-orientiertes verteiltes DBMS in Erlang Berechnungen intern mit MapReduce
Astrid Rheinländer & Stefan Bethge - MapReduce Implementierungen (2) Aster Data nCluster Kommerziell paralleles DBMS mit zusätzlichem MapReduce Hive Erweiterung von Hadoop um SQL-Artige Sprache, von Facebook benutzt Cloudbase Erweiterung von Hadoop um ANSI-SQL Kann daher wie relationales DBMS z.B. über JDBC benutzt werden
Astrid Rheinländer & Stefan Bethge - MapReduce weitere Anwendungsbeispiele Analyse textueller Daten Suche, Crawling, Tokenerstellung Indexing Data Mining und maschinelles Lernen Maschinelles Übersetzen Analyse wissenschaftlicher Daten Kmeans Clustering Berechnungen in der Teilchenphysik Astronomie (Teleskope)
Astrid Rheinländer & Stefan Bethge - MapReduce MapReduceMerge (1) Ziel: Erweiterung von MapReduce um relationale algebra „normales“ MapReduce: map: (k1, v1) → [(k2, v2)] reduce: (k2, [v2]) → [v3] MapReduceMerge: 2 Sets von map/reduce map 1 : (k1, v1)α → [(k2, v2)]α reduce 1 : (k2, [v2])α → (k2, [v3])α merge der Ausgaben der reduce-Jobs ((k2, [v3])α, (k3, [v4])β) → [(k4, v5)]γ
Astrid Rheinländer & Stefan Bethge - MapReduce MapReduceMerge (2) Quelle: MapReduceMerge – Yang, Dasdan, Hsiao, et al. (SIGMOD 2007) α β γ
Astrid Rheinländer & Stefan Bethge - MapReduce Kritik David DeWitt & Michael Stonebreaker Interface auf zu tiefer Ebene („asm“ vs. „high-level“) Speichern von Zwischenergebnissen auf HD (Alternative: streams/pipelining) Keine Schema-Unterstützung, verhindert Performanceoptimierungen wie B-Trees oder Hash- Partitionierung Neuartigkeit der Verarbeitung wird angezweifelt (Teradata, UDFs in Postgres) Funktionalität ließe sich auch mit user-defined functions und parallelen DBMS erreichen
Astrid Rheinländer & Stefan Bethge - MapReduce MapReduce vs. parallele DBMS MapReduce ist kein paralleles DBMS, aber für Datenverarbeitung ähnlich geeignet, dabei: bessere Skalierbarkeit durch sehr viel größere Fehlertoleranz große Kosteneinsparung bei Hardware möglich Standard-PCs haben bessere performance/$ einfacher zu Warten keine für Analyse-/Verarbeitungszwecke unnötigen Features enthalten (Indexes, Integrität, Schemata,...) MapReduce ist schnell, da geringer Overhead