2016-05-05 4 views

Antwort

0

Wenn Sie die Anzahl der reduzierenden Aufgaben auf 1 setzen (was auch der Standardwert ist), werden alle reduce() -Methoden von demselben ausgeführt Aufgabe, so dass keine Kommunikation benötigt wird.

Wenn Sie die Anzahl der reduzieren Aufgaben n gesetzt, dann werden Sie n Ausgabedateien haben, nicht nur 1. Diese Ergebnisse sind in der Tat unabhängig. Vielleicht sollten Sie angeben, was Sie mit "Aggregation" meinen.

+0

Danke für die Antwort @veththym. Ich verstehe, dass es so viele Teildateien wie die Anzahl der Reduzierungen geben würde. Aber meine Frage war die Logik oder die durchgeführte Operation wird auf allen Reduzierern sein und es wird nur einen Ausgang für alle diese geben und nicht ein lokales Ergebnis pro Reduzierer (was ein Kombinierer tut). Klärt das meine Frage? –

+1

@spark_dream Nein, tut es nicht. Jeder der Reduzierer arbeitet unabhängig, verarbeitet eine unabhängige Menge von Schlüsseln (regiert von Partitioner) und hat einen eigenen unabhängigen Ausgabepfad in HDFS. Also verstehe ich nicht, was Sie unter dem Begriff "Aggregation" verstehen. – gudok

+0

@gudok Lass mich es klarer machen. Wenn mein Anwendungsfall zum Beispiel darin besteht, die Gesamtzahl der Wörter in einer gegebenen Textdatei zu finden (nicht die individuelle Anzahl für jedes Wort), wie könnte ein MapReduce-Job dies tun? –