Потоковая передача Hadoop и AMAZON EMR - PullRequest
1 голос
/ 27 октября 2010

Я пытался использовать потоковую передачу Hadoop в Amazon EMR для простого подсчета слов для набора текстовых файлов.Чтобы справиться с потоковой передачей Hadoop и EMR Amazon, я взял очень упрощенный набор данных.В каждом текстовом файле была только одна строка текста (строка может содержать произвольно большое количество слов).

Маппер - это скрипт R, который разбивает строку на слова и разбрасывает ее обратно в поток.

cat(wordList[i],"\t1\n")

Я решил использовать агрегатный редуктор LongValueSum для суммирования значений, поэтому мне пришлось префиксировать вывод своего преобразователя с помощью LongValueSum

cat("LongValueSum:",wordList[i],"\t1\n")

и укажите редуктор как «совокупный»

Теперь у меня есть следующие вопросы:

  1. Промежуточная ступень между картографом и редуктором, просто сортировкапоток.Он не очень хорошо сочетается по клавишам.Я прав?Я спрашиваю об этом, потому что, если я не использую «LongValueSum» в качестве префикса для слов, выводимых устройством отображения, в редукторе я просто получаю потоки, отсортированные по ключам, но не агрегированные.То есть я просто получаю приказ по K, в отличие от (K, list (Values)) у редуктора.Нужно ли указывать объединитель в моей команде?

  2. Как используются другие агрегатные редукторы.Я вижу, множество других редукторов / агрегатов / сумматоров доступно на http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

Как эти сумматоры и редукторы указаны в настройке AMAZON EMR?

Я считаю, что проблематакого рода был подан и исправлен в потоковой передаче Hadoop для объединителя, но я не уверен, какая версия AMAZON EMR размещена, и версия, в которой доступно это исправление.

Как насчет пользовательских форматов ввода и записи читателей и писателей.Есть множество библиотек, написанных на Java.Достаточно ли указать имя класса Java для каждого из этих параметров?

1 Ответ

1 голос
/ 26 июля 2011

Промежуточная ступень между картографом и редуктором, просто сортирует поток. Он не очень хорошо сочетается по клавишам. Я прав?

Редуктор aggregate в потоковой передаче реализует соответствующие интерфейсы объединителя, поэтому Hadoop будет использовать его, если сочтет нужным [1]

То есть я только что получил приказ от K, в отличие от (K, list (Values)) у редуктора.

С потоковым интерфейсом вы всегда получаете пары значений K, V; вы никогда не получите (K,list(values))

Как используются другие агрегатные редукторы.

В каких из них вы не уверены? Указанная вами ссылка содержит краткое описание поведения каждого

Я считаю, что проблема такого рода была подана и исправлена ​​

О какой проблеме вы думаете?

не уверен, какая версия AMAZON EMR размещена

EMR основана на Hadoop 0.20.2

Достаточно ли указать имя класса Java для каждого из этих параметров?

Вы имеете в виду в контексте потоковой передачи? или совокупный каркас?

[1] http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

...