2016-06-15 9 views
-1

In Hadoop für 1 Mapper wurde nur ein Mapper-Objekt für eine Eingangsaufteilung erstellt, das intern für jede Zeile der Eingangsaufteilung Map-Methoden aufruft. Ähnlich wie oft Reducer aufgerufen wird? eine Reduce-Methode für jeden eindeutigen Schlüssel? rechtsMapper-Reduzierung in Hadoop aufrufen

Antwort

0

Sie haben die Kontrolle darüber, wie viele Reducer verwendet werden. In Ihrem Treiber legen Sie die Nummer mit so etwas wie:

job.setNumReduceTasks(int tasks)

Die Standardnummer ist 1.

Die Standardschlüssel HashPartitioner werden an einen Reduzierer basierend auf dem Hashcode des Schlüssels verteilt. So kann ein Reduce mehrere Schlüssel verarbeiten.

+0

Thansk MR Nerd, Ja, das stimmt. Nehmen wir an, ich habe job.setNumReduceTasks (2) und 10 vom Mapper verteilte eindeutige Schlüssel gesetzt. Dann werden 10 von 7 an Reduktioner 1 und 3 an Reducer 2 vergeben. Reducer 1 wird reduce intern 7 mal reducer reduzieren Bei 2 wird die Reduce-Funktion 3 Mal aufgerufen. Ist das korrekt ? –

+0

Ja, das klingt richtig für mich. –

+0

Aber was entscheidet, wie viele Schlüssel zu welchem ​​Reduzierer gehen. ? für ex 7 Schlüssel zu Reduzierer 1 und 3 Schlüssel zu reduzierer 2 –