карта-> карта-> уменьшить-> уменьшить-> конечный результат - PullRequest
2 голосов
/ 17 марта 2012

Недавно я прочитал статью, в которой предлагался алгоритм извлечения паттернов максимальной смежности из данных ДНК.Предложенный метод, который звучит довольно интересно, использовал следующую модель MapReduce.Map-> Map-> reduce-> уменьшить.Таким образом, выполняется первая фаза карты, и ее вывод вводится во вторую фазу карты.Выходной файл второй фазы является входом для уменьшения первой фазы.Выход первой фазы сокращения является входом второй фазы уменьшения и, наконец, результаты сбрасываются в HDFS.Хотя это кажется интересным методом, в статье не упоминается, как они его реализовали.У меня вопрос, как вы реализуете этот вид цепочки MapReduce?

Ответы [ 3 ]

1 голос
/ 20 марта 2012

В Hadoop, насколько я знаю, вы не можете сделать это сейчас.

Одним из подходов может быть использование ChainMapper для создания карты-> карта-> уменьшить часть.Затем отправьте результат этого задания на другое задание и установите для преобразователя значение IdentityMapper , а преобразователь - для второго восстановителя фазы, который у вас есть.

0 голосов
/ 27 апреля 2015

Пожалуйста, прочитайте о TEZ.M-> M-> R-> R-> R поддерживается любая комбо

0 голосов
/ 20 марта 2012

Я думаю, что есть два способа решения вашего дела:

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

  2. Разделите прогресс карта-карта-уменьшить-уменьшить на два задания: две карты в качестве первого задания Hadoop после преобразования второго типа задачи карты для уменьшения задачи; два сокращает как второе задание Hadoop после преобразования первого задания уменьшения в карту. Возможно, вы могли бы использовать Oozie для работы с рабочим процессом Hadoop, если отправляете некоторые задания hadoop в зависимости от других.

...