2012-03-17 8 views
1

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

+0

Спасибо. Я действительно не знал, как принять вопрос :) Я попытался «проголосовать», но coudldn't – Ahmedov

+1

Можете ли вы связать статью? –

ответ

0

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

  1. интегрировать две карты код функции в одной задаче карты с двумя фазы. Уменьшите задачу, используя тот же метод, что и карта.

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

+0

Возможно, Oozie может быть вариантом. Должен проверить это. – Ahmedov

+0

Ссылка мертва ... – ManuelSchneid3r

1

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

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

+0

IdentityMapper не поддерживается новым API, не так ли? Он использует OutputCollector в своей функции map() – Ahmedov

0

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

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