2013-02-15 3 views
3

Я очень новичок Hadoop, но в Hadoop 1.1.1 я пытаюсь сделать карту -> уменьшить -> карту -> уменьшить. Мне сложно найти конкретный пример того, как это сделать на Java. Мне действительно интересно, как выглядит весь метод драйвера. В настоящее время я использую библиотеки org.apache.hadoop.mapreduce (что, я считаю, является самой новой базой кода).Цепочка Hadoop MapReduce 1.1.1 Пример

Кроме того, я бы предпочел не устанавливать другую библиотеку, такую ​​как Oozie, если мне это не нужно.

+0

Вы хотите, чтобы вы активировали mapper после функции уменьшения, а затем снова вызвали редуктор для последнего преобразователя? Если да, то почему? Чего вы пытаетесь достичь? – aa8y

+0

@Expressions_Galore Да, я так думаю. Из того, что я читал, обычно приходится иметь дело с несколькими мапперами и редукторами, для меня просто не очевидно, как это сделать. – Newtang

+0

Это то, чего вы пытаетесь достичь? http://stackoverflow.com/questions/11122832/hadoop-mapreduce-possible-to-define-two-mappers-and-reducers-in-one-hadoop-job – aa8y

ответ

3

Я думаю, что это может помочь вам: http://blogs.msdn.com/b/avkashchauhan/archive/2012/03/29/how-to-chain-multiple-mapreduce-jobs-in-hadoop.aspx

Вы также можете посмотреть в ChainMapper (http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/lib/ChainMapper.html) в зависимости от того, что вы пытаетесь достичь. Однако это работает только с одним уменьшением. Если вы хотите перейти к карте -> уменьшить -> карта -> уменьшить, я бы пошел со своей первой ссылкой.

+0

Это было очень полезно, спасибо. Некоторые ссылки JobConf являются частью старого API. Но, выполняя новый Job(), waitingForCompletion, новый Job() снова работал нормально. – Newtang