Looking for mapreduce Keywords? Try Ask4Keywords

mapreduceErste Schritte mit mapreduce


Bemerkungen

In diesem Abschnitt erhalten Sie einen Überblick darüber, was mapreduce ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen in mapreduce erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für mapreduce neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Installation oder Setup

Mapreduce ist ein Teil von Hadoop. Wenn also Apache Hadoop (oder eine beliebige Distribution von Hadoop installiert ist), wird MR automatisch installiert.

MapReduce ist das Datenverarbeitungs-Framework über HDFS (Hadoop Distributed File System). MR-Jobs können mit Java, Python, Scala, R usw. geschrieben werden.

Was macht mapreduce und wie?

Mapreduce ist ein Programmiermodell für die Verarbeitung von (sehr) großen Datenmengen.

Herkömmliches HPC (High Performance Computing) beschleunigt umfangreiche Berechnungen mit relativ großen Datenmengen, indem es eine Reihe von stark vernetzten Computern erstellt (beispielsweise extrem schnelles Netzwerk und schnellen Zugriff auf gemeinsam genutzten Speicher und gemeinsam genutzten Speicher), um Rechenprobleme zu lösen In der Regel sind Berechnungen erforderlich, um auf die Daten der jeweils anderen zugreifen zu können. Ein klassisches Beispiel ist die Wettervorhersage.

Mapreduce zeichnet sich dagegen durch die Verarbeitung relativ kleiner, unabhängiger Berechnungen für enorme Datenmengen aus. Um dies zu ermöglichen, werden die Daten auf viele Computer verteilt (aufgrund der Datenmenge), und die gewünschte Berechnung wird in eine Phase aufgeteilt, die für jedes Datenbit unabhängig voneinander ausgeführt werden kann ("Map" -Phase). Die Ergebnisse dieser unabhängigen Berechnungen werden dann gesammelt und ein zweiter Teil der Berechnungen wird durchgeführt, um alle diese Einzelergebnisse in das Endergebnis (die "Reduzierungsphase") zu integrieren.


Beispiel: Stimmen zählen

Stellen Sie sich vor, Sie haben eine sehr große Anzahl von Stimmen zu zählen, und es gibt ein bisschen Arbeit, um jede Stimme zu zählen (zB herauszufinden, welches Kästchen angekreuzt wurde).

In diesem Fall würde eine Mapreduce-Implementierung

Schritt 1: 'Spread'

Verbreiten Sie die Bilder, um sie auf den verfügbaren Computern zu verarbeiten.

Schritt 2: 'Karte'

Auf jedem Computer für jedes Bild:

  • Nehmen Sie 1 der auf diesen Computer kopierten Bilder als Eingabe auf
  • Finden Sie heraus, welches Kästchen angekreuzt wurde
  • die Nummer (oder den Code oder Namen) des gewählten Artikels ausgeben

Beachten Sie, dass die Arbeit beginnen kann, sobald ein Computer 1 Bild zur Bearbeitung erhält. Es ist nicht erforderlich, dass all diese Computer für ihre Arbeit interagieren, sodass sie nicht schnell miteinander verbunden werden müssen, über einen gemeinsam genutzten Speicher oder einen gemeinsam genutzten Speicherplatz verfügen.

Schritt 3: 'Sammeln'

Sammeln Sie alle diese Ausgänge auf einem Computer.

Schritt 4: 'Reduzieren'

Zählen Sie, wie viele Stimmen für jede Zahl (oder Code oder Name) vorhanden sind.

Dieses sehr einfache Beispiel zeigt auch, wie oft weitere Optimierungen möglich sind. In diesem Fall kann der Reduzierungsschritt selbst eindeutig auf jedem Computer durchgeführt werden, und dann kann eine endgültige Reduzierung auf einem zentralen Computer durchgeführt werden. Dies reduziert sowohl den Arbeitsaufwand auf dem einen Computer, auf dem der Reduzierungsschritt ausgeführt wird, als auch die Datenmenge, die über das Netzwerk transportiert werden muss.


Beispiel: Stimmen zählen - optimiert (mittels Combiner)

Schritt 1: 'Spread'

Wie zuvor: Verteilen Sie die Bilder zur Verarbeitung auf den verfügbaren Computern.

Schritt 2: 'Karte'

Gleich wie zuvor: Auf jedem Computer für jedes Bild:

  • Nehmen Sie 1 der auf diesen Computer kopierten Bilder als Eingabe auf
  • Finden Sie heraus, welches Kästchen angekreuzt wurde
  • die Nummer (oder den Code oder Namen) des gewählten Artikels ausgeben

Schritt 3: "Sammeln" vor Ort

Sammeln Sie alle Ausgaben eines Computers auf dem Computer selbst.

Schritt 4: Lokal reduzieren

Zählen Sie, wie viele Stimmen der einzelnen Zahlen (oder Codes oder Namen) in den lokalen Ergebnissen vorhanden sind, und geben Sie diese Zählungen aus.

Schritt 5: 'Sammeln' global

Sammeln Sie alle Ausgaben der lokalen Reduzierungen auf einem Computer.

Schritt 6: 'Reduzieren' global

Fassen Sie die lokal gemachten Stimmenzahlen jeder Zahl (oder ihres Codes oder Namens) zusammen.


Beachten Sie, dass Sie in Schritt 3 in den folgenden Fällen nicht auf alle Ergebnisse warten müssen:

  • Wenn dies zu viel für die lokalen Ressourcen des Computers wie Speicher / Speicher wird
  • Wenn die Kosten der Arbeit, die bei einem Computerausfall neu zu erstellen ist, als zu hoch angesehen werden, um auf alle lokalen Ergebnisse zu warten
  • Wenn das Netzwerk nun Zwischenergebnisse frei transportieren kann

Das lokale Sammeln und lokale Reduzieren kann auf den lokalen Computern durchgeführt werden. Dies ist jederzeit möglich.

Der lokale Reduzierungsschritt wird als Kombinierungsschritt bezeichnet. Dies ist ein optionaler Schritt zur Verbesserung der Leistung.