Katalog
concept#Daten#Analytik#Plattform

MapReduce

MapReduce ist ein Programmiermodell zur verteilten, parallelen Verarbeitung großer Datensätze. Es trennt die Verarbeitung in Map- und Reduce-Phasen und vereinfacht Skalierung, Fehlerbehandlung und Datenpartitionierung in Cluster-Umgebungen.

MapReduce ist ein verteiltes Programmiermodell zur parallelen Verarbeitung großer Datenmengen auf Clustern; es kapselt die Schritte Map und Reduce und skaliert horizontal.
Etabliert
Hoch

Klassifikation

  • Hoch
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

HDFS oder anderes verteiltes DateisystemYARN / Cluster-Resource-ManagerObjektspeicher (z. B. Amazon S3) für Input/Output

Prinzipien & Ziele

Klare Trennung von Map- und Reduce-PhaseDatenlokalität priorisieren, um Netzwerkverkehr zu minimierenDeterministische Reduktoren und unveränderliche Eingabedaten
Umsetzung
Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Straggler-Tasks verlängern Gesamtlaufzeit
  • Netzwerk- und Shuffle-Engpässe bei großem Datenvolumen
  • Fehlende Anpassung kann zu hohen Betriebskosten führen
  • Datenlokalität steigern durch passende Partitionierung
  • Kleine Shuffle-Datenmengen durch frühe Aggregation reduzieren
  • Skew durch salting oder angepasste Partitioner behandeln

I/O & Ressourcen

  • Große, strukturierte oder semi-strukturierte Datensätze
  • Verteiltes Speichersystem und Netzwerkverbindung
  • Cluster-Ressourcen (Rechen- und Speicherknoten)
  • Aggregierte oder transformierte Datensätze
  • Index- oder Suchdatenstrukturen
  • Laufstatistiken und Audit-Logs

Beschreibung

MapReduce ist ein verteiltes Programmiermodell zur parallelen Verarbeitung großer Datenmengen auf Clustern; es kapselt die Schritte Map und Reduce und skaliert horizontal. Es vereinfacht Fehlertoleranz und Datenpartitionierung, weshalb typische Anwendungsfälle Batch-Analytics, Index-Building und aggregierte Transformationen sind. Implementierungen optimieren Datenlokalität, Scheduling und Ressourcennutzung und ermöglichen deterministische Aggregate bei großen Datenmengen.

  • Horizontale Skalierung großer Datenverarbeitungsaufgaben
  • Eingebaute Fehlertoleranz durch Task-Neustarts
  • Einfaches Programmiermodell für komplexe Aggregationen

  • Hohe Latenz — hauptsächlich für Batch-Verarbeitung geeignet
  • Nicht optimal für iterative, niedrige Latenz-Workloads
  • Leistungsprobleme bei Datenungleichgewicht (skew)

  • Durchsatz (MB/s verarbeiteter Daten)

    Misst die Datenmenge, die pro Sekunde verarbeitet wird und gibt Auskunft über Skaleneffekte.

  • Job-Laufzeit (Wall-Clock)

    Gesamtdauer eines MapReduce-Jobs von Start bis Abschluss.

  • Straggler-Anteil

    Anteil der Tasks, die deutlich länger laufen als der Median und die Gesamtlaufzeit beeinflussen.

Originalarbeit von Google (Paper)

Die ursprüngliche Publikation beschreibt das MapReduce-Design und praktische Implementierungsdetails aus Googles Umfeld.

Apache Hadoop MapReduce

Offizielle Hadoop-Implementierung des MapReduce-Paradigmas, weit verbreitet in Big-Data-Ökosystemen.

Batch-Analytics bei großen Webunternehmen

Typische Praxisbeispiele zeigen MapReduce für Log-Analyse, Index-Erstellung und periodische Aggregationen in Produktionsumgebungen.

1

Datenquellen identifizieren und in partitionierbare Form bringen

2

Map- und Reduce-Funktionen definieren und lokal testen

3

Jobs auf einem Testcluster ausführen und Partitionierung anpassen

4

Produktionseinführung mit Monitoring und Ressourcen-Tuning

⚠️ Technische Schulden & Engpässe

  • Monolithische Job-Pipelines ohne Modularisierung
  • Hartkodierte Partitionslogiken, die Migration erschweren
  • Unzureichende Testabdeckung für Fehlerfälle und Retry-Logik
Netzwerk-/Shuffle-PhaseFestplatten- und I/O-LeistungDaten-Skew in Partitionen
  • Einsatz für Low-Latency-Streaming-Analysen statt spezialisierter Stream-Engines
  • Ungetuntes Ausführen großer Jobs ohne Monitoring führt zu Ressourcenkonflikten
  • Verwendung bei stark iterativen Algorithmen statt spezialisierter Frameworks
  • Unterschätzung der Shuffle-Kosten im Netzwerk
  • Ignorieren von Daten-Skew bei Partitionierung
  • Fehlende Beobachtbarkeit bei Langläufern und Stragglers
Kenntnisse verteilter Systeme und NetzwerkeErfahrung in Map- und Reduce-Programmierung (z. B. Java, Python)Betriebskenntnisse für Cluster und Ressourcen-Tuning
Datenvolumen und WachstumsrateNotwendige Parallelisierbarkeit von JobsAnforderungen an Fehlertoleranz und Wiederholbarkeit
  • Eingabedaten müssen partitionierbar sein
  • Deterministische Reduce-Operationen erforderlich
  • Abhängigkeit von verteiltem Speichersystem (z. B. HDFS, S3)