6

Я хочу помочь понять алгоритм. Сначала я вставил алгоритм, а затем мои сомнения.Понимание алгоритма mapreduce для вычисления перекрытия

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

Учитывая определяемый пользователем параметр К, файл ДР (* Формат: record_id данные *) разделяется на K почти обор размеров кусков, так что данные документа Di попадают в i/K-й кусок.

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

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

Сомнения:

Я сделал несколько предположений:

себе: Каждый ключ (I, J) сопоставляется с редуктором в J/группы K-й. Предположения: K уменьшают узлы, и ключ отображается на узел сокращения j/Kth.

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

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

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

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

В ожидании ответов!

Спасибо!

+0

Я не думаю, что вы даете нам достаточно информации, чтобы понять этот алгоритм ... –

+0

В принципе, существует два типа Mapper выходов: 1. , –

+0

В принципе, есть два типа выходных картографа: а , ключ: , val: <пересечение> b. : , val: . Первый тип выходов может достигать любого редуктора, основанного на второй части второй части ключа, то есть j. Цель состоит в том, чтобы сгруппировать вместе любые записи экземпляров экземпляров с любого выходного файла карты, который имеет одну и ту же «i» в первой части ключа. ключ должен быть реплицирован k раз, чтобы достичь каждого экземпляра сокращения, так что каждая запись пересечения с i в качестве первой части ключа получает данные i. Означает ли это, что k необходимо тиражировать столько раз, сколько нет. сокращения узлов ??? –

ответ

0

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

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