MapReduce

Apache MapReduce ist ein Open-Source-Projekt zur Erzeugung und Speicherung großer Datensätze. Das MapReduce läuft auf einem geclusterten Computersystem. Die Verarbeitung besteht aus zwei Phasen. Die Mapper-Phase verarbeitet Eingabedaten, die in Schlüssel-Wert-Paare umgewandelt werden. Die Ausgabe des Mapper-Prozesses wird anschließend an den Reducer-Prozess weitergeleitet, der seine Eingabedatensätze komprimiert.
Warum ist MapReduce wichtig?
Wenn Sie Petabytes an Daten schnell und wirtschaftlich verarbeiten müssen, brauchen Sie MapReduce und Hadoop. Hadoop ist heute fast ein Synonym für Big Data Verwendung, da es Unternehmen ermöglicht, Tausende von Standardprozessoren zur Verarbeitung großer Datensätze einzusetzen.
MapReduce entstand aus dem Bedarf an Systemen zur effizienten Verarbeitung von Datensätzen, die bis in den Petabyte-Bereich reichen können. Daten liegen in vielen Formaten vor, die verarbeitet, gespeichert und abgerufen werden müssen. Das Hadoop Distributed File System (HDFS) verwendet MapReduce als Kernkomponente seiner Architektur, um eine Vielzahl von Daten auf skalierbar und flexible Weise zu verarbeiten.
MapReduce kann in gängigen Sprachen wie Python, C++ und Java aufgerufen werden.
Ausführen einer MapReduce
Die Durchführung eines MapReduce auf einem Datensatz erfordert die Verwendung von zwei Kernmethoden: die Mapper-Schnittstelle und die Reducer-Schnittstelle.
Der Mapper
Die Aufgaben, die Eingabedatensätze in Zwischensätze umwandeln, werden als Maps bezeichnet. Ein Eingabepaar kann auf null oder mehr Ausgabedatensätze (Zwischensätze) abgebildet werden, die einen Datentyp aus dem Eingabewertpaar darstellen können. Der Map-Prozess kann parallel mit einer Aufgabe pro Eingabedatensatz ausgeführt werden. Wenn also ein Datensatz in zehn separate Dateien aufgeteilt wird, werden zehn Map-Aufgaben erstellt.
Anwendungen können einen integrierten Zähler verwenden, um Statistiken über den Vorgang zu erhalten. Die Ausgabe kann gruppiert, sortiert und partitioniert werden, bevor sie an die Reducer-Aufgaben weitergegeben wird. Für jede Partition gibt es eine Aufgabe , es sei denn, der Entwickler entscheidet sich für eine Aggregation mithilfe eines Combiners, um das Datenvolumen in dieser Phase zu kontrollieren.
Die zwischengespeicherten, sortierten Ausgabedatensätze haben das Format (Schlüssel-Len, Schlüssel, Wert-Len, Wert). Anwendungen können in der Konfiguration einen Komprimierungscodec angeben.
Parallelisierung der Map-Tasks
Die Anzahl der parallelen Map-Aufgaben hängt von der Gesamtzahl der Dateiblöcke und der Anzahl der Arbeiter pro Knoten ab, die bei einer Multi-Terabyte-Datei Tausende betragen kann.
Die Methode "Reduzieren
Die von der Mapper-Methode erzeugten Zwischenwerte können die Reduce-Methode durchlaufen, die eine kleinere Anzahl von Werten erzeugt, die einen gemeinsamen Schlüssel haben. Die Anzahl der Reducer-Aufträge ist konfigurierbar.
Die Reducer-Methode verwendet eine Reihe von Schritten, die mit einem Shuffle und einer Sortierung beginnen, die gleichzeitig stattfinden, gefolgt von dem Reduce-Schritt.
Beim Shuffle-Schritt holt das Framework einen bestimmten Mapper-Ausgabestrom zum Reducer-Job. Im Sortierschritt gruppiert das Framework die Mapper-Ausgabe nach Schlüsselwerten. Sekundäre Schlüsselsortierungen sind konfigurierbar.
The Reduce method is called for every <key, (list of values)> pair in the grouped inputs, which is eventually written to the file system in an unsorted form.
Die Ausgabe des Reducers ist nicht sortiert. Die Reduzierung kann optional gemacht werden, indem die Anzahl der Aufgaben auf Null gesetzt wird.
Aufteilung
Die Zwischenergebnisse der Karte können mit einer Hash-Funktion partitioniert werden, die einen Teil des Schlüsselwerts verwendet. Die Anzahl der Partitionen bestimmt die Anzahl der reduzierten Aufgaben.
Sowohl der Mapper als auch der Reducer können die Funktion Zähler verwenden, um Statistiken zu erstellen.
Die Vorteile von MapReduce
Im Folgenden finden Sie eine Zusammenfassung der wichtigsten Vorteile von MapReduce:
- Eine höchst skalierbar Methode zur Komprimierung großer Datenmengen.
- Bietet Open-Source-Wirtschaft.
- Unterstützt multiple data .
- Die MapReduce wird als Standardbestandteil der Apache Hadoop-Distribution geliefert.
- Einfach für Entwickler zu verwenden.
Actian Datenplattform und Hadoop
Die Actian Data Platform ist so konzipiert, dass sie in einer Hadoop-Umgebung skalierbar ist. Sie ermöglicht Parallelität über Knoten hinweg und den Zugriff auf alle Datenformate, die Apache Spark unterstützt. Die Hadoop-Unterstützung ist der Schlüssel zur Unterstützung skalierbar Operationen in einem Cluster mit partitionierten Daten, auf die mit Apache Spark zugegriffen wird. Actian bietet auch skalierbar Datenzugriff auf gestreamte Datenquellen wie Azure Blob Storage oder GCS.