2014-07-16 2 views
1

«MapReduce Design Patterns» имеет шаблон для поиска отдельных записей в наборе данных. Это алгоритм:Выбор отдельных записей в Hadoop и использование объединителя

map(key, record): 
    emit record, null 

reduce(key, records): 
    emit key 

На странице 66 говорится:

объединителя всегда можно использовать в этой схеме и может помочь, если существует большое количество дублей.

фаза карты испускает запись и NullWritable (что не написано на проводе). Что Combiner пытается уменьшить? Нет записи для сокращения.

ответ

2

Он пытается уменьшить дубликаты на выходе карты.

Допустим, у вас есть текстовые данные слова в каждой строке:

John 
Adam 
John 
John 

Там нет смысла направлять все John к редуктору, если вы можете объединить их после фазы карты и только отправить:

John 
Adam 

Который отличается для каждого устройства сопоставления уже, тем самым сохраняя пропускную способность, если у вас есть достаточное количество нечетких записей в вашем расколе.