Используются ли методы настройки и очистки в каждом задании картографа и редуктора? Или они называются только один раз в начале работы с картой и редуктором?
Методы настройки и очистки Mapper/Reducer в Hadoop MapReduce
Ответ 1
Они вызываются для каждой задачи, поэтому, если у вас 20 запущенных mappers, для каждого будет вызываться настройка/очистка.
Один из методов gette - стандартный метод запуска как для Mapper, так и для Reducer не исключает исключения вокруг методов map/reduce - поэтому, если в этих методах выбрано исключение, метод очистки не будет вызываться.
Ответ 2
Одно пояснение полезно. Методы настройки/очистки используются для инициализации и очистки на уровне задачи. В рамках задачи первая инициализация происходит с помощью одного вызова метода setup(), а затем все вызовы функции map() [или reduce()] будут выполнены. После этого еще один вызов будет выполнен для метода cleanup() перед выходом из задачи.
Ответ 3
Он вызывает задачу Mapper или задачу Reducer. Вот код hadoop.
public void run(Context context) throws IOException, InterruptedException {
setup(context);
try {
while (context.nextKey()) {
reduce(context.getCurrentKey(), context.getValues(), context);
}
} finally {
cleanup(context);
}
}
Ответ 4
Согласно документации mapreduce настройка и очистка вызывается для каждой задачи Mapper и Reducer.
Ответ 5
на редукторе вы можете на рабочем месте выполнить job.setNumReduceTasks(1); и таким образом установка и очистка редуктора будут выполняться только один раз.