MapReduce

Ein lächelnder Mann, der in einem Büro an einem Laptop arbeitet und das Lernen und die Implementierung von MapReduce darstellt.

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 und die Data Intelligence Plattform

Die Actian Data Intelligence Platform wurde speziell dafür entwickelt, Unternehmen bei der Vereinheitlichung, verwalten und dem Verständnis ihrer Daten in hybriden Umgebungen zu unterstützen. Sie vereint Metadaten , Governance, Lineage, Qualitätsüberwachung und Automatisierung in einer einzigen Plattform. So können Teams sehen, woher die Daten kommen, wie sie verwendet werden und ob sie internen und externen Anforderungen entsprechen.

Durch seine zentrale Schnittstelle unterstützt Actian Erkenntnis über Datenstrukturen und -flüsse und erleichtert so die Anwendung von Richtlinien, die Lösung von Problemen und die abteilungsübergreifende Zusammenarbeit. Die Plattform hilft auch dabei, Daten mit dem geschäftlichen Kontext zu verbinden, damit Teams Daten effektiver und verantwortungsvoller nutzen können. Die Plattform von Actian ist so konzipiert, dass sie mit sich entwickelnden Datenökosystemen skaliert und eine konsistente, intelligente und sichere Datennutzung im gesamten Unternehmen unterstützt. Fordern Sie Ihr persönliches Demo an.

FAQ

Apache MapReduce ein Open-Source-Projekt, das darauf ausgelegt ist, große Datensätze auf einem Cluster-Computersystem in zwei Phasen zu generieren und zu speichern: einer Mapper-Phase, in der Eingabedaten zu Schlüssel-Wert-Paaren verarbeitet werden, und einer Reducer-Phase, in der diese Datensätze komprimiert werden.

MapReduce die schnelle und kostengünstige Verarbeitung von Petabytes an Daten, indem es Unternehmen ermöglicht, Tausende von Standardprozessoren einzusetzen, um große Datensätze skalierbar flexibel zu verarbeiten.

Der Mapper wandelt Eingabedatensätze in zwischengeschaltete Schlüssel-Wert-Paare um, wobei ein Eingabepaar null oder mehr Ausgabedatensätzen zugeordnet werden kann. Map-Aufgaben können parallel ausgeführt werden, wobei Aufgabe Eingabedatei eine Aufgabe ausgeführt wird.

Der Reducer nimmt die vom Mapper erzeugten Zwischenwerte und erzeugt eine geringere Anzahl von Werten, die denselben Schlüssel haben, wobei er die gruppierten Eingaben mithilfe von Shuffle-, Sort- und Reduce-Schritten verarbeitet.

MapReduce in gängigen Sprachen wie Python, C++ und Java aufgerufen werden.

Die Anzahl der parallelen Map-Aufgaben hängt von der Gesamtzahl der Dateiblöcke und der Worker pro Knoten ab, die bei Dateien im Multi-Terabyte-Bereich mehrere Tausend betragen kann, was Scalability enorme Scalability ermöglicht.

MapReduce eine Kernkomponente der Architektur des Hadoop Distributed File System (HDFS) und wird als Standardbestandteil der Apache-Hadoop-Distribution bereitgestellt.

MapReduce hochgradig skalierbar , Open-Source-Vorteile, Unterstützung für multiple data , einfache Handhabung für Entwickler und eine standardmäßige Integration in Apache Hadoop.