2009-12-22 30 views
12

Espero que esté preguntando esto de la manera correcta. Estoy aprendiendo sobre Elastic MapReduce y he visto numerosas referencias al reductor "Aggregate" que se puede usar con flujos de trabajo "Streaming".Reductores disponibles en Elastic MapReduce

En "Introducción a Amazon Elastic MapReduce" PDF de Amazon afirma que "Amazon Elastic MapReduce tiene un reductor defecto llamada aggregrate"

Lo que me gustaría saber es: ¿existen otras reductores defecto availiable?

Entiendo que puedo escribir mi propio reductor, pero no quiero terminar escribiendo algo que ya existe y "reinventar la rueda" porque estoy seguro de que mi rueda no será tan buena como la original.

Respuesta

4

Estoy en una situación similar. Deduzco de los resultados de Google, etc., que la respuesta ahora es "No, no hay otros reductores predeterminados en Hadoop", lo cual es una mierda, porque sería obviamente útil tener reductores predeterminados como, por ejemplo, "promedio" o "mediana". "para que no tengas que escribir el tuyo".

http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html muestra una serie de usos del agregador útiles, pero no puedo encontrar documentación sobre cómo acceder a otras funcionalidades además de la suma clave/valor muy básica descrita en la documentación y en la respuesta de Erik Forsberg. Quizás esta funcionalidad solo esté expuesta en la API de Java, que no quiero usar.

Por cierto, me temo que la respuesta de Erik Forsberg no es una buena respuesta a esta pregunta en particular. Se puede construir otra pregunta para la cual podría ser una respuesta útil, pero no es lo que el OP está pidiendo.

8

El reductor que se refieren se documenta aquí:

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

Eso es un reductor que se construye en la utilidad de streaming. Proporciona una forma simple de hacer cálculos comunes escribiendo un correlacionador que saca las claves formateadas de una manera especial.

Por ejemplo, si sus salidas asignador:

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

El reductor calculará la suma de cada LongValueSum, y contar los valores distintos de UniqValueCount. Por ello, la salida del reductor será:

id1\t25 
id2\t12 
id3\t2 

Los reductores y combinadores de este paquete se comparan muy rápido a la ejecución de los combinadores de transmisión y reductores, así que usar el paquete global es a la vez cómodo y rápido.

Cuestiones relacionadas