/ / Einrichtungs- und Bereinigungsmethoden von Mapper / Reducer in Hadoop MapReduce - hadoop, mapreduce

Setup- und Bereinigungsmethoden von Mapper / Reducer in Hadoop MapReduce - hadoop, mapreduce

Werden Setup- und Bereinigungsmethoden in den einzelnen Mapper- bzw. Reduktionsaufgaben aufgerufen? Oder werden sie zu Beginn von Mapper- und Reducer-Jobs insgesamt nur einmal aufgerufen?

Antworten:

21 für die Antwort № 1

Sie werden für jede Aufgabe aufgerufen. Wenn also 20 Mapper ausgeführt werden, wird die Einrichtung / Bereinigung für jeden einzelnen aufgerufen.

Ein Gotcha ist die Standardausführungsmethode für beideMapper and Reducer fängt keine Ausnahmen um die Map / Reduce-Methoden ab. Wenn in diesen Methoden eine Ausnahme ausgelöst wird, wird die Bereinigungsmethode nicht aufgerufen.


5 für die Antwort № 2

Eine Klarstellung ist hilfreich. Die Setup- / Bereinigungsmethoden werden für die Initialisierung und Bereinigung auf Taskebene verwendet. Innerhalb einer Task erfolgt die erste Initialisierung mit einem einzelnen Aufruf der setup () -Methode. Anschließend werden alle Aufrufe der map () [oder reduction ()] -Funktion ausgeführt. Danach wird ein weiterer einzelner Aufruf an die cleanup () -Methode gesendet, bevor die Task beendet wird.


3 für die Antwort № 3

Es wird pro Mapper Task oder Reducer Task aufgerufen. Hier ist der Hadoop-Code.

public void run(Context context) throws IOException, InterruptedException {
setup(context);
try {
while (context.nextKey()) {
reduce(context.getCurrentKey(), context.getValues(), context);
}
} finally {
cleanup(context);
}
}

1 für die Antwort № 4

Entsprechend der mapreduce Dokumentation Setup und Bereinigung werden für jede Mapper- und Reducer-Aufgabe aufgerufen.


1 für die Antwort № 5

Auf dem Reduzierer können Sie im Job job.setNumReduceTasks (1) ausführen. Auf diese Weise wird die Einrichtung und Bereinigung des Reduzierers nur einmal ausgeführt.