MapReduce ist ein Programmierkonzept, das massive Skalierbarkeit über Hunderte oder Tausende von Servern in einem Hadoop-Cluster ermöglicht. Als Verarbeitungskomponente ist MapReduce das Herzstück von Apache Hadoop. Der Begriff "MapReduce" bezieht sich auf zwei separate und unterschiedliche Aufgaben, die Hadoop-Programme ausführen. Der erste ist der Map-Auftrag, bei dem ein Datensatz in einen anderen Datensatz umgewandelt wird, wobei die einzelnen Elemente in Tupel (Schlüssel/Wert-Paare) zerlegt werden.
Der Reduce-Job nimmt die Ausgabe einer Map als Eingabe und kombiniert diese Datentupel zu einer kleineren Menge von Tupeln. Wie die Reihenfolge des Namens MapReduce andeutet, wird der Reduce-Job immer nach dem Map-Job ausgeführt.
Die MapReduce-Programmierung bietet mehrere Vorteile, mit denen Sie wertvolle Erkenntnisse aus Ihren Big Data gewinnen können:
Dies ist ein ganz einfaches Beispiel für MapReduce. Unabhängig von der Datenmenge, die Sie analysieren müssen, bleiben die wichtigsten Grundsätze dieselben.
Angenommen, Sie haben fünf Dateien, und jede Datei enthält zwei Spalten (einen Schlüssel und einen Wert in Hadoop-Begriffen), die eine Stadt und die entsprechende Temperatur darstellen, die in dieser Stadt für die verschiedenen Messtage aufgezeichnet wurde. Die Stadt ist der Schlüssel, und die Temperatur ist der Wert. Zum Beispiel: (Toronto, 20). Aus allen gesammelten Daten möchten Sie die Höchsttemperatur für jede Stadt in allen Dateien ermitteln (beachten Sie, dass in jeder Datei dieselbe Stadt mehrfach vertreten sein kann).
Mithilfe des MapReduce-Frameworks können Sie dies in fünf Map-Tasks aufteilen, wobei jeder Mapper an einer der fünf Dateien arbeitet. Der Mapper-Task geht die Daten durch und liefert die Höchsttemperatur für jede Stadt.
Die Ergebnisse eines Mapper-Tasks für die oben genannten Daten würden zum Beispiel so aussehen: (Toronto, 20) (Whitby, 25) (New York, 22) (Rom, 33)
Nehmen wir an, dass die anderen vier Mapper-Tasks (die an den anderen vier hier nicht gezeigten Dateien arbeiten) die folgenden Zwischenergebnisse liefern:
(Toronto, 18) (Whitby, 27) (New York, 32) (Rom, 37) (Toronto, 32) (Whitby, 20) (New York, 33) (Rom, 38) (Toronto, 22) (Whitby, 19) (New York, 20) (Rom, 31) (Toronto, 31) (Whitby, 22) (New York, 19) (Rom, 30)
Alle fünf dieser Ausgabeströme würden in die Reduce-Tasks eingespeist, die die Eingabeergebnisse kombinieren und einen einzigen Wert für jede Stadt ausgeben, was eine endgültige Ergebnismenge wie folgt ergibt: (Toronto, 32) (Whitby, 27) (New York, 33) (Rom, 38).
Als Analogie kann man sich die Map- und Reduce-Tasks so vorstellen, wie zu Zeiten der Römer eine Volkszählung durchgeführt wurde, bei der das Volkszählungsbüro seine Leute in jede Stadt des Reiches schickte. Jeder Volkszähler in jeder Stadt hätte die Aufgabe, die Anzahl der Menschen in der jeweiligen Stadt zu zählen und die Ergebnisse dann an die Hauptstadt zu übermitteln. Dort würden die Ergebnisse aus jeder Stadt zu einer einzigen Zählung (Summe aller Städte) reduziert, um die Gesamtbevölkerung des Reiches zu ermitteln. Diese parallele Zuordnung von Menschen zu Städten und die anschließende Kombination der Ergebnisse (Reducing) ist wesentlich effizienter als die serielle Zählung aller Menschen im Reich durch eine einzige Person.
IBM und Cloudera haben sich zusammengeschlossen, um eine branchenführende, unternehmensgerechte Hadoop-Distribution anzubieten, einschließlich eines integrierten Ökosystems von Produkten und Dienstleistungen zur Unterstützung schnellerer Analysen im großen Maßstab.
Nutzen Sie die Möglichkeiten von Big Data mithilfe einer hoch skalierbaren Open-Source-Speicher- und Programmierplattform. IBM bietet Hadoop-kompatible Lösungen und Services, mit denen Sie alle Arten von Daten nutzen können, um Erkenntnisse und bessere datengestützte Entscheidungen für Ihr Unternehmen zu gewinnen.
Bauen Sie einen Hadoop-basierten Data Lake auf, der das Potenzial Ihrer Hadoop-Daten optimiert. Mit den Lösungen und Produkten von IBM und Cloudera können Sie das wachsende Volumen, die Geschwindigkeit und die Vielfalt von Daten besser verwalten, steuern, darauf zugreifen und erforschen.
Data-Lakes gewinnen an Bedeutung, da Unternehmen immer mehr unstrukturierte Daten einbinden und versuchen, Erkenntnisse aus echtzeitorientierten Ad-hoc-Abfragen und -Analysen zu ziehen. Erfahren Sie mehr über die neuen Datentypen und Datenquellen, die durch Integration von Data-Lakes in Ihr bestehendes Datenmanagement genutzt werden können. (PDF, 84 KB)
Erfahren Sie, welche Speicher- und Governance-Technologien für Ihren Data Lake erforderlich sind, um KI-fähige Daten bereitzustellen. (PDF, 15.6 MB)