лучший способ выборки в Hadoop MapReduce

Мне нужно 20% выборочных данных из входного набора данных.

Я думал о двух подходах:

  1. Первоначально выдает 20 % данных от каждого преобразователя (один преобразователь выдает 20 % данных). Затем редуктор находит 20 % данных преобразователя после перемешивания и сортировки (та же процедура применяется как для Map, так и для Reduce).

  2. Просто выпустите каждую строку из картографа, а затем найдите 20% выборочных данных из общих данных в Reducer (обработка выполняется только в Reducer).

Какой подход лучше?


person USB    schedule 25.06.2014    source источник
comment
Я не совсем понимаю ваш первый подход, не могли бы вы его перефразировать?   -  person Mike Park    schedule 26.06.2014
comment
Я отредактировал. Надеюсь, это прояснит. В противном случае, пожалуйста, пропингуйте меня.   -  person USB    schedule 26.06.2014
comment
В случае 1, если вы примените одну и ту же процедуру как к карте, так и к стороне уменьшения, вы будете выбирать только 4% от общего объема данных. Во втором случае вы будете отбирать 20% от общего объема данных. Пожалуйста, подумайте об этом изменении.   -  person donut    schedule 26.06.2014


Ответы (1)


Я бы определенно пошел с вашим первым вариантом. Я не уверен, почему вам нужен редуктор, хотя. Просто отфильтруйте 20% на этапе карты и на этом закончите.

person Mike Park    schedule 26.06.2014
comment
но выходных данных будет столько же, сколько картографов. Каждый картограф будет давать 20% данных - person USB; 26.06.2014
comment
Да, файлов будет столько, сколько есть мапперов, но каждый файл — это 20% данных, отдаваемых мапперу. Не 20% всего набора данных. - person Mike Park; 26.06.2014