2013-11-22 3 views
0

Когда элементы сопоставляются с редукторами на основе ключей, получает ли один редуктор список, содержащий один ключ, или редуктор содержит все ключи, которые хэшируются этим редуктором?Что входит в Hadoop Reducer?

Пример: У меня есть 7 уникальных идентификаторов, на которые я картинка.

Когда я пишу свой метод сокращения, могу ли я предположить, что когда я пройду через все элементы в списке, у меня будет только один уникальный идентификатор? Или я мог бы иметь более одного идентификатора в редукторе?

ответ

2

Каждый звонок reduce() будет иметь один ключ и одно или несколько значений. Это видно из подписи метода Map.reduce(): reduce(KEYIN key, Iterable<VALUEIN> values, Context context)

Некоторые примеры:

  • Если картограф называет Context.write() 10 раз с тем же ключом и 10 различных значений, то уменьшить() метод будет вызываться один раз, а итератор values предоставит 10 различных значений.
  • Если ваш картограф звонит Context.write() 10 раз с 10 различными ключами, reduce() будет называться 10 раз, каждый раз с помощью другого ключа.

Имейте в виду, что это упрощение случая по умолчанию. Вы можете использовать специальные компараторы группировки и другие методы, чтобы изменить это поведение.

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

Смежные вопросы