Несколько картографов записывают вывод в один файл - PullRequest
0 голосов
/ 17 января 2019

Я новичок в hadoop и поражен проблемой.У меня есть случай, когда я хочу запустить задание только на карте для файла размером около 2 ГБ.Я создал 4 разбиения размером 512 МБ с использованием CombineHiveInputFormat и произвел 4 сопоставления для каждого разбиения.Однако, когда эти преобразователи пытаются записать свои выходные данные в один выходной файл, я обнаруживаю некоторые несоответствия данных.Возможно ли для нескольких картографов записать свои выходные данные в один и тот же файл?Если да, то что мне нужно для этого сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 01 февраля 2019

Обычно в задании MapReduce мапперы не записывают ни в один файл HDFS . Вместо этого они передают свои данные в IdentityReducer, который затем записывает вывод в файл (или в несколько файлов в случае нескольких редукторов).

Попробуйте установить в своем коде клиента:

  //...
  conf.setReducerClass(IdentityReducer.class);
  conf.setNumReduceTasks(1);
...