Ugrás a fő tartalomhoz

Előzetes / Utólagos műveletek

A Mapper és a Reducer osztályban definiálva van egy setup() és egy cleanup() művelet, melyek az adott Map/Reduce task futtatása előtt vagy után kerülnek végrehajtásra.

public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {
...
protected void setup(Context context) throws IOException, InterruptedException { }
protected void cleanup(Context context) throws IOException, InterruptedException { }
...
}
veszély

Ezek a műveletek pontosan annyiszor futnak le, ahány Map/Reduce task van. Ez egygépes rendszereken nem okoz gondot, de egy rendles klaszteren ez akár a számítógépek száma is lehet.

tanács

A következő trükkel garantálhatjuk, hogy csak egy Reduce task fusson le:

Driver.java
public static void main(String[] args) {
...
Job job = Job.getInstance(conf, "job-name");
job.setNumReduceTasks(1);
...
}