Discusión:MapReduce

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

Después de leer un artículo sobre el tema, me ví motivado a traducir este artículo de la versión en inglés de Wikipedia (http://en.wikipedia.org/wiki/MapReduce).

Cuando pueda aporto algunos párrafos más, sería bueno ir revisando el estilo :)

No difiere de los lenguajes funcionales salvo restricciones[editar]

El paragrafo: "Por lo tanto, el framework MapReduce transforma una lista de pares (clave, valor) en una lista de valores. Este comportamiento es diferente de la combinación "map and reduce" de programación funcional, que acepta una lista arbitraria de valores y devuelve un valor único que combina todos los valores devueltos por mapa." no se ajusta a la realidad.

Estás equivocado.
Sólo con el ejemplo de OCaml, se puede ver que tu comentario es incorrecto:
{{val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a}}

Un lenguaje funcional puede retornar varios valores con un map reduce, ejemplo de ello es una operacion de filtrado: haces un map de cada valor a lista vacia o lista de un elemento, y finalmente en el reduce concatenas todas las listas. Así pues, igual que solo recibe un elemento -una lista- tambien devuelve un elemento -que puede ser una lista-.

Quizás la diferencia más notable es las restricciones que te impone el modelo, con lo que el MapReduce se queda como un caso concreto de las posibilidades de los lenguajes funcionales. Esta restricción viene dada por la distribucion de los datos y la dificultat de comunicar los resultados parciales.

El MapReduce no lo ha inventado Google!!![editar]

El Framework MapReduce sí.
+1

Informe de error[editar]

En el ejemplo de las matrices: http://es.wikipedia.org/wiki/MapReduce#Multiplicaci.C3.B3n_de_una_matriz_por_un_vector

la implementación de la función reduce() está mal. Es una copia del ejemplo anterior. - --87.216.121.78 (discusión) 01:59 3 ene 2015 (UTC)  Trasladado desde Wikipedia:Informes de error por Jembot (discusión) 09:13 7 ene 2015 (UTC)[responder]

Duda[editar]

Al final del 2º párrafo de definición (MapReduce), se hace referencia a HDFS como Sistema de archivos distribuido, ¿no es HDFS en realidad Hadoop Distributed File System?, creo que en todo caso se debería hacer referencia a HDFS con la sección del artículo wiki Hadoop.

Enlaces externos modificados[editar]

Hola,

Acabo de modificar 1 enlaces externos en MapReduce. Por favor tomaos un momento para revisar mi edición. Si tenéis alguna pregunta o necesitáis que el bot ignore los enlaces o toda la página en su conjunto, por favor visitad esta simple guía para ver información adicional. He realizado los siguientes cambios:

Por favor acudid a la guía anteriormente enlazada para más información sobre cómo corregir los errores que el bot pueda cometer.

Saludos.—InternetArchiveBot (Reportar un error) 17:42 10 abr 2018 (UTC)[responder]

El artículo solo es claro para los que ya conocen del tema[editar]

No se entiende nada. Está mal redactado.

Las funciones map y reduce generalizadas tienen los siguientes tipos:

map : (A -> B) -> (Estructura_de A -> Estructura_de B)

reduce : (A * B -> B) -> B -> (Estructura_de A -> B)

por lo que la manera de componer map después de reduce sería así:

mapReduce : (A * B -> B) -> B -> (Estructura_de (Estructura_de A) -> Estructura_de B)

mapReduce op neutro eea = map (reduce op neutro) eea


o la manera de componer map antes de reduce: sería así:

mapReduce' : (A * B -> B) -> B -> (Estructura_de C -> Estructura_de A) -> (Estructura_de C -> B)

mapReduce' op neutro f eea = reduce op neutro (f eea)

(si no me hice bolas)

¿Qué tiene que ver eso con:

Map(k1,v1) -> list(k2,v2)   ?


Supongo que el conjunto o lista de tuplas (k,v) : A * B tiene alguna correspondencia con una función f : A -> B, porque hablando matemáticamente, las funciones son conjuntos de tuplas.


¿Tiene el lector que descifrar lo qué dice el artículo? ¿No sería más claro definir qué significa la susodicha mapReduce escribiendo claramente su definición usando map y reduce?


Es demasiado confuso para quienes no están familiarizados con el tema, cuando se supone que lo va a leer quién quiere aprender sobre mapReduce.


Mover el articulo a la wikipedia en spanglish o escribir en español[editar]

El artículo tiene partes que usan términos en inglés cuando existen en español.

Por ejemplo:

"... para calcular el PageRank"


"El procesamiento paralelo puede ocurrir con el empleo de datos almacenados tanto en filesystem (no estructurado) o en una database (estructurados)."


Confunden concurrencia con paralelismo[editar]

Concurrencia no es sinónimo de procesamiento en paralelo, como se usa en el artículo donde dice:

"... Por regla general se emplea MapReduce en aquellos problemas de Computación concurrente entre los que se encuentran involucrados grandes datasets (sic.) que deben ser procesandos por una gran cantidad de computadoras (nodos), a los que se refiere de forma colectiva como clusteres ..."