Karte verkleinern

Definition - Was bedeutet MapReduce?

MapReduce ist ein von Google eingeführtes Programmiermodell zur Verarbeitung und Generierung großer Datenmengen auf Computerclustern.

Google formulierte zunächst das Framework, um die Indizierung von Webseiten von Google zu unterstützen, und das neue Framework ersetzte frühere Indizierungsalgorithmen. Anfängerentwickler finden das MapReduce-Framework vorteilhaft, da mit Bibliotheksroutinen parallele Programme erstellt werden können, ohne sich um die Kommunikation innerhalb des Clusters, die Überwachung von Aufgaben oder die Fehlerbehandlung kümmern zu müssen.

MapReduce läuft auf einem großen Cluster von Commodity-Maschinen und ist hoch skalierbar. Es gibt verschiedene Arten der Implementierung, die von mehreren Programmiersprachen wie Java, C # und C ++ bereitgestellt werden.

Technische.me erklärt MapReduce

Das MapReduce-Framework besteht aus zwei Teilen:

  1. Eine Funktion namens "Map", mit der verschiedene Punkte des verteilten Clusters ihre Arbeit verteilen können
  2. Eine Funktion namens "Reduzieren", mit der die endgültige Form der Clusterergebnisse auf eine Ausgabe reduziert werden soll

Der Hauptvorteil des MapReduce-Frameworks ist seine Fehlertoleranz, bei der nach Abschluss der Arbeiten regelmäßige Berichte von jedem Knoten im Cluster erwartet werden.

Eine Aufgabe wird von einem Knoten auf einen anderen übertragen. Wenn der Masterknoten feststellt, dass ein Knoten länger als erwartet still war, führt der Hauptknoten den Neuzuweisungsprozess für die eingefrorene / verzögerte Task durch.

Das MapReduce-Framework ist von den Funktionen "Map" und "Reduce" inspiriert, die in der funktionalen Programmierung verwendet werden. Die rechnergestützte Verarbeitung erfolgt für Daten, die in einem Dateisystem oder in einer Datenbank gespeichert sind, die einen Satz von Eingabeschlüsselwerten verwendet und einen Satz von Ausgabeschlüsselwerten erzeugt.

Täglich werden zahlreiche MapReduce-Programme und MapReduce-Jobs in den Clustern von Google ausgeführt. Programme werden automatisch parallelisiert und auf einem großen Cluster von Commodity-Maschinen ausgeführt. Das Laufzeitsystem befasst sich mit der Partitionierung der Eingabedaten, der Planung der Programmausführung auf mehreren Maschinen, der Behandlung von Maschinenfehlern und der Verwaltung der erforderlichen Kommunikation zwischen Maschinen. Programmierer ohne Erfahrung mit parallelen und verteilten Systemen können problemlos die Ressourcen eines großen verteilten Systems nutzen.

MapReduce wird für verteiltes grep, verteilte Sortierung, Umkehrung von Weblinkgraphen, Webzugriffsprotokollstatistiken, Dokumentenclustering, maschinelles Lernen und statistische maschinelle Übersetzung verwendet.