2016-10-09 1 views
2

Заголовок вопроса объясняет все, что касается моего вопроса. я читал через несколько текстов, ответы, где я наткнулся на эту линиюВ hadoop, что подразумевается под умением сохранять состояние через редуктор Mapper несколькими входами?

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

Я не могу понять эту концепцию. Подробный ответ и объяснение с примером будут действительно полезными. Как развивать интуицию для понимания таких понятий?

ответ

0

Если вы уже чувствуете себя комфортно с концепцией «редуктора», концепция комбайнера будет легкой. Комбинатор можно рассматривать как мини-редуктор на фазе карты. Что я имею в виду? Давайте посмотрим на пример: предположим, что вы выполняете классическую задачу wordcount, вы знаете, что для каждого слова пара ключ-значение выдается преобразователем. Затем редуктор будет принимать в качестве входных данных пары ключ-значение и суммировать их. Supose что картостроитель собирает несколько пар ключ-значение, как:

<key1,1>, 
<key2,1>, 
<key1,1>, 
<key3,1>, 
<key1,1> 

Если вы не используете объединитель, это 4 пары ключ-значение будет послана к редуктору. но с использованием объединитель мы могли выполнить предварительно уменьшить в картографа, поэтому выход преобразователя будет:

<key1,3>, 
<key2,1>, 
<key3,1> 

В этом простом примере, используя объединитель, вы сократили общее количество пар ключ-значение от 5 до 3, что даст вам меньше сетевого трафика и улучшит производительность в фазе перетасовки.

+0

Да. Я полностью понимаю, что вы говорите, но мой вопрос касается состояния ... Я не понимаю утверждения: способность сохранять состояние на нескольких входах .....? что это? где мы здесь поддерживаем? – neerajdorle

+0

Или вы хотите сказать, что агрегирование, которое мы выполнили, поддерживало состояние? – neerajdorle

+1

Ну, это немного связано с тем, как каркас сокращения каркаса работает внутри. Рамка создает экземпляр объекта Mapper, у которого есть определенный метод карты, но поскольку тот же объект Mapper применяет метод карты к нескольким парам ключ-значение во входном расщеплении, он способен сохранять состояние через несколько пар ключ-значение входы, простой пример этого состояния может быть счетчиком для каждого ключа, с которым он сталкивается. Он может даже загружать данные «состояния» во время «настройки» и сохранять его (или обновлять) на нескольких входах. –