Понимание алгоритма mapreduce для расчета перекрытия

Прошу помощи в понимании алгоритма. Сначала я вставил объяснение алгоритма, а затем свои сомнения.

Алгоритм: (для вычисления перекрытия между парами записей)

При заданном пользователем параметре K файл DR( *Format: record_id, data*) разбивается на K фрагментов почти одинакового размера, так что данные документа Di попадают в i/K-й фрагмент.

Мы переопределили функцию секционирования Hadoop, которая сопоставляет ключ, созданный преобразователем, с экземпляром редюсера. Каждый ключ (i,j) сопоставляется с редуктором в j/K-й группе.

Специальный ключ i,* и связанное с ним значение, т. е. данные документа, реплицируются не более K раз, так что полное содержимое документа может быть доставлено на каждый редуктор. Таким образом, каждому редюсеру в группе необходимо восстановить и загрузить в память только один фрагмент файла DR, размер которого можно установить сколь угодно малым, варьируя K. Таким образом, можно рассчитать перекрытие. Это достигается за счет репликации документов, доставленных через инфраструктуру MapReduce.

Сомнения:

Я сделал некоторые предположения:

Утверждение: каждый ключ (i,j) сопоставляется с редуктором в j/K-й группе. Предположение: присутствуют K редукционных узлов, и ключ сопоставлен с j/K-м редуцирующим узлом.

Сомнение: некоторые узлы сокращения сгруппированы вместе? скажем, узлы 0,1,2 сгруппированы как Group-0?

Утверждение: данные документа реплицируются не более K раз, так что полное содержимое документа может быть доставлено на каждый редюсер.

Итак, это означает, что K равно нет. узлов редуктора? Если нет, то мы тратим вычислительные узлы впустую, не используя их, верно?

Основное сомнение: равно ли K количеству узлов редуктора??

Надеюсь на отклики!

Спасибо!


person Mahalakshmi Lakshminarayanan    schedule 10.03.2013    source источник
comment
Я не думаю, что вы даете нам достаточно информации, чтобы понять этот алгоритм...   -  person Giovanni Botta    schedule 03.04.2013
comment
По сути, существует два типа выходных данных Mapper: 1. ‹i,i›‹value›,   -  person Mahalakshmi Lakshminarayanan    schedule 04.04.2013
comment
По сути, есть два типа выходных данных картографа: a. ключ: ‹i,j›, val: ‹пересечение› б. ключ: ‹i,*›, val: ‹данные›. Выходы первого типа могут достигать любого редуктора на основе второй части второй части ключа, т.е. j. Цель состоит в том, чтобы сгруппировать вместе в любом редуцируемом экземпляре записи из любого вывода картографа, который имеет один и тот же i в первой части ключа. Ключ ‹i,*› должен быть реплицирован k раз, чтобы достичь каждого экземпляра сокращения, чтобы каждая запись пересечения с i в качестве первой части ключа получала данные i. Означает ли это, что k должно повторяться столько раз, сколько нет. узлов сокращения???   -  person Mahalakshmi Lakshminarayanan    schedule 04.04.2013
comment
Это похоже на многократную репликацию...   -  person Mahalakshmi Lakshminarayanan    schedule 04.04.2013
comment
Я до сих пор не понимаю: (1) что пытается сделать эта программа map/reduce; (2) что означает переопределение функции секционирования Hadoop; (3) почему вам нужны два разных ключа/значения и как они создаются на этапе сопоставления (сопоставитель допускает только один тип для ключа и один тип для значения); (4) почему это не может быть разработано с использованием двух или более алгоритмов map/reduce, чтобы не было необходимости в взломе (который всегда опасен и не переносим) и чтобы можно было соблюдать парадигму MR.   -  person Giovanni Botta    schedule 04.04.2013
comment
Не ясно и то, что вы пытаетесь сделать. Что вы имеете в виду под перекрытием? Пересечение чего и чего? Пожалуйста, предоставьте минимальный пример ввода (или, по крайней мере, вывода картографа) и ожидаемого вывода на этапе сокращения.   -  person Pierre D    schedule 10.04.2013


Ответы (1)


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

Однако, если операция только знает, что будет обрабатываться позже во время работы, может потребоваться разрешить выполнение кода до конца.

person WonderWorker    schedule 18.04.2013