Video: Almased prüfung 2024
Die Reduce-Phase verarbeitet die Schlüssel und ihre einzelnen Wertelisten, so dass das, was normalerweise an die Clientanwendung zurückgegeben wird, eine Reihe von Schlüssel / Wert-Paaren ist. Hier ist der bisherige Blow-by-Blow: Ein großer Datensatz wurde in kleinere Teile zerlegt, sogenannte Eingabesplits, und einzelne Instanzen von Mapper-Tasks haben jede von ihnen verarbeitet.
In einigen Fällen reicht diese einzige Verarbeitungsphase aus, um die gewünschte Anwendungsausgabe zu generieren. Wenn Sie z. B. eine grundlegende Transformationsoperation für die Daten ausführen, z. B. den gesamten Text in Großbuchstaben umwandeln oder Schlüsselbilder aus Videodateien extrahieren, benötigen Sie nur die einzige Phase. (Dies ist übrigens als map-only -Aufgabe bekannt.)
In vielen anderen Fällen ist der Job jedoch nur halb ausgeführt, wenn die Mapper-Tasks ihre Ausgabe geschrieben haben. Die verbleibende Aufgabe kocht alle Zwischenergebnisse zu einer einzigen, einheitlichen Antwort zusammen.
Ähnlich wie bei der Mapper-Aufgabe, bei der jeder Datensatz einzeln verarbeitet wird, verarbeitet der Reduzierer jeden einzelnen Schlüssel einzeln. Normalerweise gibt der Reduzierer ein einzelnes Schlüssel / Wert-Paar für jeden Schlüssel zurück, den er verarbeitet. Diese Schlüssel-Wert-Paare können jedoch so groß oder klein sein, wie Sie sie benötigen.
Wenn die Reduzierungsaufgaben abgeschlossen sind, gibt jeder von ihnen eine Ergebnisdatei zurück und speichert diese in HDFS (Hadoop Distributed File System). Wie hier gezeigt repliziert das HDFS-System diese Ergebnisse automatisch.
Wenn der Resource Manager (oder JobTracker, wenn Sie Hadoop 1 verwenden) versucht, den Mapper-Tasks Ressourcen zuzuweisen, um sicherzustellen, dass Eingabesplits lokal verarbeitet werden, gibt es keine Strategie für Reduzierungsaufgaben. Es wird angenommen, dass die Ergebnismengen der Mapper-Aufgaben über das Netzwerk übertragen werden müssen, um von den Reduktionsaufgaben verarbeitet zu werden.
Dies ist eine sinnvolle Implementierung, da es bei hunderten oder sogar tausenden von Mapper-Aufgaben keine praktische Möglichkeit gäbe, Reduktionsaufgaben mit derselben Ortspriorisierung zu versehen.