2009-12-22 4 views
12

Надеюсь, я задам это правильно. Я изучаю путь по Elastic MapReduce, и я видел многочисленные ссылки на редуктор «Агрегат», который можно использовать при потоках заданий «Потоковая передача».Доступные редукторы в эластичной MapReduce

В «Введение в Amazon Elastic MapReduce» PDF Амазонки говорится «Amazon Elastic MapReduce имеет редуктор по умолчанию под названием aggregrate»

То, что я хотел бы знать: есть другие редукторы по умолчанию Доступно?

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

ответ

4

Я в аналогичной ситуации. Я выхожу из результатов Google и т. Д., Что ответ прямо сейчас «Нет, в Hadoop нет других дефолтных сокращений», что отстойно, потому что было бы полезно использовать дефолтные редукторы, например, «средний» или «средний» «поэтому вам не нужно писать свои собственные.

http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html показывает множество полезных агрегаторов, но я не могу найти документацию о том, как получить доступ к другим функциям, кроме самой основной суммы ключа/значения, описанной в документации, и в ответе Эрика Форсберга. Возможно, эта функция доступна только в Java API, которую я не хочу использовать.

Кстати, я боюсь, что ответ Эрика Форсберга не является хорошим ответом на этот конкретный вопрос. Другой вопрос, для которого он может быть полезным ответом, можно построить, но это не то, о чем спрашивает ОП.

8

Редуктор они относятся к документирована здесь:

http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

Это редуктор, встроенный в утилиту потоковой передачи. Он обеспечивает простой способ сделать общий расчет, написав картограф, который выводит ключи, которые форматируются особым образом.

Например, если ваш Mapper выходы:

LongValueSum:id1\t12 
LongValueSum:id1\t13 
LongValueSum:id2\t1 
UniqValueCount:id3\tval1 
UniqValueCount:id3\tval2 

Редуктор будет вычислить сумму каждого LongValueSum, и подсчитать различные значения для UniqValueCount. Таким образом, выходной редуктор будет:

id1\t25 
id2\t12 
id3\t2 

Редукторы и сумматоры в пакете очень быстро по сравнению с работой потокового сумматоры и восстановителей, поэтому использование совокупного пакета является удобным и быстрым.