Является ли job.setNumReduceTasks (0) эквивалентным пустой функции сокращения - PullRequest
0 голосов
/ 24 июня 2018

job.setNumReduceTasks(0) приводит к работе только на карте

означает ли это, что промежуточная фаза (тасование и сортировка) не выполняется?

как по сравнению с пустым методом уменьшения (без операций):

public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {
  public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {                             
    \\do nothing            
  }
}

Или это эквивалентно

1 Ответ

0 голосов
/ 24 июня 2018

Разница проста,

  1. Задание только на карте В задании только на карте у вас нет фазы тасования, что означает, что данные не передаются по сети,Картографы будут автоматически генерировать результаты. Проверьте это.
  2. Map-Reduce Job Даже если ваши редукторы ничего не делают, данные будут отправлены в редукторы, что означает, что происходит фаза тасования,Редукторы запишут результаты на диск.
...