Was ist MapReduce?

 Frau schreibt Geschäftsbericht in Notizbuch und benutzt Laptop im Café

Was ist MapReduce?

MapReduce ist ein Programmiermodell, das Parallelverarbeitung nutzt, um die Datenverarbeitung zu beschleunigen. MapReduce ermöglicht massive Skalierbarkeit über Hunderte oder Tausende von Servern innerhalb eines Hadoop-Clusters.

Der Name „MapReduce“ bezieht sich auf die beiden Aufgaben, die das Modell ausführt, um eine große Datenverarbeitung in viele kleinere Aufgaben zu „teilen“, die parallel schneller ausgeführt werden können.

  • Die erste Aufgabe ist die „Map-Aufgabe“, bei der ein Datensatz in einen anderen Datensatz umgewandelt wird, der als Schlüssel/Werte-Paar formatiert ist, z. B. Städte (Schlüssel) und täglich hohe Temperaturen (Werte).

  • Die zweite ist die „Reduce-Aufgabe“, die die Ausgabedaten einer Map-Aufgabe nimmt, alle Werte mit demselben Schlüssel aggregiert und die Daten verarbeitet, um einen endgültigen Satz von Schlüssel/Werte-Paaren zu erzeugen.

Das Programmiermodell ist eine der Kern-Komponenten von Apache Hadoop, einem Open-Source-Framework, das von der Apache Software Foundation unterstützt wird und auf der Programmiersprache Java basiert.

Das MapReduce-Modell kann auch außerhalb von Hadoop verwendet werden.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

So funktioniert MapReduce

MapReduce hilft dabei, Datenverarbeitung in kleinere Teile zu unterteilen, damit sie schneller stattfinden kann.

Die Analyse einer riesigen Datei mit Terabytes oder Petabytes an Daten mit einem Prozessor kann beispielsweise 10 Stunden dauern. MapReduce kann dieselbe Datendatei in 10 Aufgaben aufteilen, die parallel auf 10 Prozessoren ausgeführt werden. Die Ausführung dieser Aufgabe dauert möglicherweise nur eine Stunde oder weniger. Die Daten können von den verteilten Rechenknoten aggregiert werden, um ein Ergebnis zu erzielen.

Während Mapping und Reduzieren die wesentlichen Funktionen des MapReduce-Modells sind, umfasst der Gesamtprozess noch einige weitere Schritte.

Eingabe

Eine MapReduce-Anwendung akzeptiert Eingabedaten, die strukturierte oder unstrukturierte Daten enthalten können. MapReduce-Anwendungen arbeiten in der Regel mit Eingabe-Dateien, die im Hadoop Distributed File System (HDFS) gespeichert sind, aber das Modell kann auch mit anderen Datenquellen arbeiten. (Weitere Informationen finden Sie unter „MapReduce innerhalb des Hadoop-Ökosystems“.)

Für einen bestimmten Job hilft das MapReduce-Framework dabei, verteilte Server auszuwählen, Kommunikation und Datenübertragungen zu verwalten und Fehlertoleranz und Redundanz zu unterstützen.

Aufteilung

Die Eingabedaten sind in kleinere Blöcke aufgeteilt. Diese Blöcke werden an Mapper verteilt – d. h. Funktionen, die die Zuordnung durchführen –, die sich auf verschiedenen Rechenknoten befinden. Um einen effizienten Lastenausgleich zu erreichen, versucht das MapReduce-Framework die Zuweisung von Daten an die Mapper möglichst gleichmäßig zu gestalten.

Kartierung

Auf jedem Knoten verarbeitet die Map-Funktion die empfangenen Daten und wandelt sie in Schlüssel/Werte-Paare um.

Die Gesamtzahl der Mapper wird innerhalb des Hadoop-Frameworks basierend auf dem Gesamtvolumen der Daten und den verfügbaren Speicherblöcken auf jedem Mapper bestimmt. Parameter für die Mapper, Reducer und Ausgabeformate können innerhalb des Hadoop-Clusters festgelegt werden.

Mischen

Das Hadoop- Framework sortiert die Map-Ausgaben und weist alle Schlüssel/Werte-Paare mit demselben „Schlüssel“ (Thema) demselben Reducer zu. In einem Datensatz mit Städten und ihren täglich hohen Temperaturen würden beispielsweise alle Daten mit dem Schlüssel „Tokio“ an denselben Reducer gehen.

Der Reducer ist, wie der Name schon sagt, die Funktion, die den Schritt des Reduzierens ausführt.

Reduzieren

Reduce-Funktionen verarbeiten die Schlüssel/Werte-Paare, die die Mapper ausgeben. Dies kann, abhängig von der Art der erforderlichen Verarbeitung, das Zusammenführen, Tabellieren oder Ausführen anderer Operationen mit den Daten beinhalten.

Mapping und Reduzierung können auf denselben Servern durchgeführt werden, dies ist jedoch optional.

Ergebnis

Jeder Reducer gibt die Ergebnisse seiner Verarbeitung an das HDFS oder einen anderen Datenspeicher aus.

Ein Beispiel für MapReduce

Unabhängig von der Datenmenge, die ein Unternehmen analysieren möchte, bleiben die wichtigsten Prinzipien dieselben.

Für dieses Beispiel umfasst der Datensatz Städte (die Schlüssel) und die entsprechenden Tagestemperaturen (die Werte), die für jede Stadt aufgezeichnet wurden. Ein Beispiel für ein Schlüssel/Werte-Paar könnte folgendermaßen aussehen: <Toronto, 18>.

Die Daten werden auf mehrere Dateien verteilt. Jede Datei kann Daten aus einer Mischung von Städten enthalten und sie kann dieselbe Stadt mehrmals enthalten.

Anhand dieses Datensatzes möchte der Nutzer die „Höchsttemperatur“ für jede Stadt im erfassten Zeitraum ermitteln.

Eine Implementierung von MapReduce zur Erledigung dieser Aufgabe könnte so aussehen:

  1. Datendateien mit Temperaturinformationen werden als Eingabe in die MapReduce-Anwendung eingespeist.

  2. Die Dateien werden in Map-Tasks aufgeteilt, wobei jede Task einem der Mapper zugewiesen wird.

  3. Die Mapper wandeln die Daten in Schlüssel-Wert-Paare um.

  4. Die Map-Ausgaben werden gemischt und sortiert, sodass alle Werte mit demselben Stadtschlüssel den selben Reducer haben. Zum Beispiel gehen alle Temperaturwerte für Toronto an einen Reducer, während ein anderer Reducer alle Werte für London aggregiert.

  5. Jeder Reducer verarbeitet seine Daten, um den höchsten Temperaturwert für jede Stadt zu ermitteln. Die Daten werden dann auf das höchste Schlüssel-Wert-Paar für jede Stadt reduziert.

  6. Nach der Reduktionsphase können die höchsten Werte erfasst werden, um ein Ergebnis zu erhalten: <Tokyo, 38> <London, 27> <New York, 33> <Toronto, 32>.
Ein vereinfachtes Diagramm mit MapReduce zur Bestimmung der hohen Temperaturen nach Stadt Ein vereinfachtes Diagramm, das zeigt, wie das MapReduce-Framework Daten verarbeitet (zum Vergrößern anklicken)

MapReduce innerhalb des Hadoop-Ökosystems

Das Hadoop-Ökosystem ist eine Suite von Open-Source-Modulen, die zusammenarbeiten, um die Effizienz zu fördern. Es gibt Module, die das Haupt-Hadoop-Framework bilden, darunter MapReduce und drei weitere:

Hadoop Distributed File System (HDFS)

HDFS ist ein verteiltes Dateisystem zum Speichern von Anwendungsdaten auf bis zu Tausenden von Standardservern.

HDFS wurde entwickelt, um Fehlertoleranz für Hadoop zu bieten und einen schnellen Zugriff auf Daten zu ermöglichen. Standardmäßig werden Datenblöcke beim Laden oder Schreiben über mehrere Knoten repliziert.

Die HDFS-Architektur verfügt über einen NameNode zur Verwaltung des Dateisystem-Namespace und Dateizugriffs, sowie über mehrere DataNodes zur Verwaltung des Datenspeichers.

Yet Another Resource Negotiator (YARN)

Das Open-Source-Projekt Apache Hadoop (YARN) ist ein Framework für die Jobplanung und die Verwaltung von Clusterressourcen. Es unterstützt multiple Workloads, wie SQL Querys, erweiterte Modellierung und Echtzeit-Streaming.

Hadoop Common

Dieses Modul ist eine Sammlung von Ressourcendienstprogrammen und Bibliotheken, die andere Hadoop-Module unterstützen. Es ist auch unter dem Namen Hadoop Core bekannt und umfasst mehrere Ressourcen für die automatische Fehlerbehebung, Abstraktion auf Dateisystem- und Betriebssystemebene, Java Archive (JAR)-Dateien und -Skripte und mehr.

Andere Module

Zusätzlich zum Haupt-Hadoop-Framework umfasst das Hadoop-Ökosystem Folgendes:

  • HBase (eine nicht-relationale NoSQL-Datenbank)
  • Mahout und Spark MLlib (Algorithmusbibliotheken für maschinelles Lernen)
  • Oozie (ein Job-Scheduler)
  • Apache Hive und Apache Pig (abfragebasierte Datenverarbeitungstools)
  • Solr und Lucene (für Suche und Indizierung)
  • Spark (In-Memory-Datenverarbeitungs-Engine) 
  • Zookeeper (Cluster-Koordination)
AI Academy

Ist Datenverwaltung das Geheimnis generativer KI?

Erfahren Sie, warum qualitativ hochwertige Daten für den erfolgreichen Einsatz generativer KI unerlässlich sind.

Vorteile von MapReduce

Die MapReduce-Programmierung bietet mehrere Vorteile, die Unternehmen dabei helfen können, wertvolle Erkenntnisse aus Big-Data-Analysen zu gewinnen, z. B.:

  • Skalierbarkeit: MapReduce ermöglicht es Unternehmen, Petabytes von im HDFS gespeicherten Daten auf mehreren Servern oder Knoten zu verarbeiten.

  • Schnellere Verarbeitung: Mit paralleler Verarbeitung und minimaler Datenbewegung bietet MapReduce eine Optimierung der Datenverarbeitung für große Datenmengen.

  • Einfachheit: Entwickler können MapReduce-Anwendungen in den Programmiersprachen ihrer Wahl schreiben, darunter Java, C++ und Python.

  • Kosteneinsparungen: Als Open-Source-Programm kann MapReduce einem Unternehmen einiges an Softwarekosten ersparen. Allerdings fallen immer noch Kosten für die Infrastruktur und das Personal für die Datentechnik an.

Anwendungsfälle für MapReduce

MapReduce kann viele einfache Anwendungsfälle effizient bewältigen, obwohl komplexe Datenverarbeitung in anderen Anwendungen schneller ausgeführt werden können. Hier sind einige Anwendungen, die für den Ansatz der parallelen Verarbeitung von MapReduce geeignet sind:

  • Datenintegration: Das MapReduce-Framework wird verwendet, um den ETL-Prozess (Extrahieren, Transformieren und Laden) auszuführen, um Daten für die Analyse und Speicherung vorzubereiten.

  • Bildverarbeitung, bei der Aufgaben wie die Bildklassifizierung in kleinere Datensätze aufgeteilt und parallel verarbeitet werden können.

  • Log Analysis, z. B. Identifizieren von Trends durch Überprüfen von Log-Dateien von Web- oder Anwendungsservern.

  • Maschinelles Lernen (ML) – hier kann MapReduce bei ML-Trainingsaufgaben, wie kollaborativer Filterung, K-Means-Clustering und linearer Regression, helfen.

  • Stimmungsanalyse: MapReduce kann beispielsweise dabei helfen, Kundenbewertungen auf einer Website zu addieren oder Antwortcluster zu identifizieren.

  • Tabellierung, z. B. die Zählung, wie viele Kunden nach Ländern sortiert ihr Konto im vergangenen Jahr verlängert haben.

  • Text Mining, z. B. Wortzählungsjobs, die verfolgen, wie oft ein Wort in einem bestimmten Eingabedatensatz vorkommt, z. B. in einem Kommentarbereich.

Geschichte von MapReduce

Das MapReduce-Programmierparadigma wurde 2004 von den Google-Informatikern Jeffery Dean und Sanjay Ghemawat entwickelt. Das Ziel des MapReduce-Modells besteht darin, die Transformation und Analyse großer Datenmengen durch massive Parallelverarbeitung auf großen Clustern handelsüblicher Hardware zu vereinfachen. Außerdem können sich Programmierer auf Algorithmen anstatt auf die Datenverwaltung konzentrieren.

Google hat das erste MapReduce-Framework eingeführt, Apache Hadoop MapReduce ist jedoch wahrscheinlich das beliebteste.

MapReduce hat eine wichtige Rolle bei der Weiterentwicklung von Big-Data-Analysen gespielt, hat aber auch seine Nachteile. So werden beispielsweise Daten von MapReduce in der Regel nicht im Speicher aufbewahrt, und iterative Logik ist nur durch die Verkettung von MapReduce-Anwendungen möglich. Diese Faktoren erhöhen die Komplexität und können zu längeren Verarbeitungszeiten führen.

Während MapReduce nach wie vor weit verbreitet ist – insbesondere in Altlast-Systemen – wechseln viele Unternehmen für Big Data-Anwendungen zu schnelleren oder spezialisierteren Frameworks wie Apache Spark.

Weiterführende Lösungen
Software und Lösungen für die Datenverwaltung

Entwerfen Sie eine Datenstrategie, die Datensilos beseitigt, die Komplexität reduziert und die Datenqualität verbessert, um außergewöhnliche Kunden- und Mitarbeitererfahrungen zu schaffen.

Lösungen für Datenmanagement erkunden
IBM watsonx.data

Watsonx.data ermöglicht es Ihnen, Analysen und KI mit all Ihren Daten zu skalieren, unabhängig davon, wo sie sich befinden, und zwar über einen offenen, hybriden und kontrollierten Datenspeicher.

IBM watsonx.data entdecken
Beratungsservices für Daten und Analysen

Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting und bauen Sie ein erkenntnisgesteuertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.

Analyse-Services entdecken
Machen Sie den nächsten Schritt

Entwerfen Sie eine Datenstrategie, die Datensilos beseitigt, die Komplexität reduziert und die Datenqualität verbessert, um außergewöhnliche Kunden- und Mitarbeitererfahrungen zu schaffen.

Lösungen für Datenmanagement erkunden IBM watsonx.data entdecken