Доступные редукторы в Elastic MapReduce
Вопрос
Надеюсь, я спрашиваю это правильно.Я изучаю Elastic MapReduce и видел множество ссылок на «агрегатный» редуктор, который можно использовать с потоками заданий «потоковой передачи».
В PDF-файле Amazon Elastic MapReduce «Введение в Amazon Elastic MapReduce» говорится: «Amazon Elastic MapReduce имеет редуктор по умолчанию, называемый агрегатом».
Что я хотел бы знать: доступны ли другие редукторы по умолчанию?
Я понимаю, что могу написать свой собственный редуктор, но не хочу в конечном итоге писать что-то уже существующее и «изобретать велосипед», потому что уверен, что мой велосипед не будет так хорош, как оригинал.
Решение
Я в похожей ситуации.Из результатов Google и т. д. я делаю вывод, что ответ прямо сейчас: «Нет, в Hadoop нет других редукторов по умолчанию», что отстой, потому что было бы очевидно полезно иметь редукторы по умолчанию, такие как, скажем, «средний» или «медианный». ", поэтому вам не придется писать свой собственный.
http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html показывает ряд полезных применений агрегатора, но я не могу найти документацию о том, как получить доступ к другим функциям, кроме самой простой суммы ключей/значений, описанной в документации и в ответе Эрика Форсберга.Возможно, эта функциональность доступна только в Java API, который я не хочу использовать.
Кстати, я боюсь, что ответ Эрика Форсберга не является хорошим ответом на этот конкретный вопрос.Можно построить еще один вопрос, на который это могло бы быть полезным ответом, но это не то, о чем спрашивает ФП.
Другие советы
Редактор, на который они ссылаются, задокументирован здесь:
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
Рудищики и комбинаторы в этом пакете очень быстрые по сравнению с выполнением потоковых комбинатов и редукторов, поэтому использование пакета заполнителя является удобным и быстрым.