Was ist MapReduce?

Was ist MapReduce?

MapReduce ist eine Big-Data-Verarbeitungstechnik und ein Modell für die programmatische Implementierung dieser Technik. Sein Ziel ist es, riesige Datenmengen in kleinere Teilmengen zu sortieren und zu filtern und diese Teilmengen dann auf Rechenknoten zu verteilen, die die gefilterten Daten parallel verarbeiten.

In der Datenanalyse wird dieser allgemeine Ansatz Split-Apply-Combine genannt.

MapReduce-Schritte

Eine generische MapReduce-Prozedur besteht aus drei Hauptschritten: Map, Shuffle und Reduce. Jeder Knoten im verteilten MapReduce-System hat lokalen Zugriff auf einen beliebigen kleinen Teil des großen Datensatzes.

  1. Zuordnen: Jeder Knoten wendet die Zuordnungsfunktion auf seinen Teil der Daten an und filtert und sortiert sie nach Parametern. Die zugeordneten Daten werden an den Zwischenspeicher ausgegeben, zusammen mit einem entsprechenden Schlüsselsatz (identifizierende Metadaten), der angibt, wie die Daten neu verteilt werden sollen.

  2. Shuffle: Die gemappten Daten werden auf andere Knoten im System umverteilt, sodass jeder Knoten Gruppen von schlüsselähnlichen Daten enthält.

  3. Reduzieren: Daten werden parallel verarbeitet, pro Knoten, pro Schlüssel.

Implementierungen

Die folgenden Software- und Datensysteme implementieren MapReduce:

  • Hadoop – Entwickelt von der Apache Software Foundation. Geschrieben in Java, mit einer sprachunabhängigen API.

  • Spark – Entwickelt von AMPLab an der UC Berkeley, mit APIs für Python, Java und Scala.

  • Disco – Eine ursprünglich von Nokia entwickelte MapReduce-Implementierung, geschrieben in Python und Erlang.

  • MapReduce-MCI – Entwickelt bei Sandia National Laboratories, mit Bindungen für C, C++ und Python.

  • Phoenix – Eine MapReduce-Implementierung mit Threads, entwickelt an der Stanford University, geschrieben in C++.

Einschränkungen und Alternativen

Aufgrund des ständigen Mischens von Daten ist MapReduce für iterative Algorithmen, wie sie beispielsweise im ML (Machine Learning) verwendet werden, schlecht geeignet.

Zu den Alternativen zum herkömmlichen MapReduce, die darauf abzielen, diese Engpässe zu beseitigen, gehören:

  • Amazon EMR – High-Level-Management für die Ausführung verteilter Frameworks auf der AWS-Plattform (Amazon Web Services), wie z. B. Hadoop, Spark, Presto und Flink.

  • Flink – Ein Open-Source-Framework für die Stream-Verarbeitung von unvollständigen oder während der Ãœbertragung befindlichen Daten. Optimiert für große Datensätze, entwickelt von Apache.

  • Google Cloud Dataflow – Verteilte Datenverarbeitung für GCP (Google Cloud Platform).

  • Presto – Eine verteilte Open-Source-SQL-Abfrage-Engine für Big Data.

Datenbankbegriffe

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here