¿Qué es Apache MapReduce?
¿Qué es MapReduce?

MapReduce es un paradigma de programación que permite una escalabilidad masiva en cientos o miles de servidores en un clúster de Hadoop. Como componente de procesamiento, MapReduce es el corazón de Apache Hadoop. El término "MapReduce" se refiere a dos tareas separadas y distintas que realizan los programas Hadoop. El primero es el trabajo de mapa, que toma un conjunto de datos y lo convierte en otro conjunto de datos, donde los elementos individuales se dividen en tuplas (pares clave / valor).

El trabajo de reducción toma la salida de un mapa como entrada y combina esas tuplas de datos en un conjunto más pequeño de tuplas. Como implica la secuencia del nombre MapReduce, el trabajo de reducción siempre se realiza después del trabajo de mapa.

La programación de MapReduce ofrece varios beneficios para ayudarlo a obtener información valiosa de su big data:

  • Escalabilidad . Las empresas pueden procesar petabytes de datos almacenados en el sistema de archivos distribuido de Hadoop (HDFS).
  • Flexibilidad. Hadoop permite un acceso más fácil a múltiples fuentes de datos y múltiples tipos de datos.
  • Velocidad. Con procesamiento paralelo y movimiento de datos mínimo, Hadoop ofrece un procesamiento rápido de cantidades masivas de datos.
  • Simple. Los desarrolladores pueden escribir código en una variedad de lenguajes, incluidos Java, C ++ y Python.
Un ejemplo de MapReduce

Este es un ejemplo muy simple de MapReduce. Independientemente de la cantidad de datos que necesite analizar, los principios clave siguen siendo los mismos.

Suponga que tiene cinco archivos, y cada archivo contiene dos columnas (una clave y un valor en términos de Hadoop) que representan una ciudad y la temperatura correspondiente registrada en esa ciudad para los distintos días de medición. La ciudad es la clave y la temperatura es el valor. Por ejemplo: (Toronto, 20). De todos los datos que hemos recopilado, desea encontrar la temperatura máxima para cada ciudad en los archivos de datos (tenga en cuenta que cada archivo puede tener la misma ciudad representada varias veces).

Con el marco MapReduce, puede dividir esto en cinco tareas de mapa, donde cada asignador trabaja en uno de los cinco archivos. La tarea del mapeador revisa los datos y devuelve la temperatura máxima para cada ciudad.

Por ejemplo, los resultados producidos a partir de una tarea de mapeador para los datos anteriores se verían así: (Toronto, 20) (Whitby, 25) (Nueva York, 22) (Roma, 33)

Suponga que las otras cuatro tareas del asignador (trabajando en los otros cuatro archivos que no se muestran aquí) produjeron los siguientes resultados intermedios:

(Toronto, 18) (Whitby, 27) (Nueva York, 32) (Roma, 37) (Toronto, 32) (Whitby, 20) (Nueva York, 33) (Roma, 38) (Toronto, 22) (Whitby, 19) (Nueva York, 20) (Roma, 31) (Toronto, 31) (Whitby, 22) (Nueva York, 19) (Roma, 30)

Los cinco flujos de salida se colocarían en las tareas de reducción, que combinan los resultados de entrada y generan un valor único para cada ciudad, produciendo un conjunto de resultados final como sigue: (Toronto, 32) (Whitby, 27) (Nueva York, 33) (Roma, 38).

Como analogía, puede pensar en el mapa y la reducción de tareas como la forma en que se realizaba un censo en la época romana, donde la oficina del censo enviaba a su gente a cada ciudad del imperio. Cada encuestador de cada ciudad tendría la tarea de contar el número de personas en esa ciudad y luego devolver sus resultados a la ciudad capital. Allí, los resultados de cada ciudad se reducirían a un solo recuento (suma de todas las ciudades) para determinar la población general del imperio. Este mapeo de personas a ciudades, en paralelo, y luego combinar los resultados (reducir) es mucho más eficiente que enviar a una sola persona a contar a todas las personas en el imperio de manera serial.

Soluciones relacionadas
Impulse análisis mejores y más rápidos con soluciones de big data de IBM y Cloudera

IBM y Cloudera se han unido para ofrecer una distribución de Hadoop de nivel empresarial líder en la industria, que incluye un ecosistema integrado de productos y servicios para respaldar análisis más rápidos a escala.

Explore las oportunidades de big data con IBM
Apache Hadoop

Aproveche el poder de los macrodatos mediante una plataforma de programación y almacenamiento de código abierto y altamente escalable. IBM ofrece soluciones y servicios compatibles con Hadoop para ayudarlo a aprovechar todo tipo de datos, potenciando conocimientos y mejores decisiones basadas en datos para su negocio.

Más información sobre las soluciones de Hadoop
Data lakes

Cree un lago de datos basado en Hadoop que optimice el potencial de sus datos de Hadoop. Administre, gobierne, acceda y explore mejor el creciente volumen, velocidad y variedad de datos con el ecosistema de soluciones y productos de IBM y Cloudera.

Conozca los datas lakes
Recursos Conecte más datos de más fuentes

Los data lakes están ganando importancia a medida que las empresas incorporan más datos no estructurados y buscan generar insights a partir de consultas y análisis ad hoc en tiempo real. Conozca más acerca de los nuevos tipos y orígenes de datos que se pueden aprovechar mediante la integración de data lakes en su gestión de datos existente. (PDF, 153 KB)

Un lago de datos robusto y gobernado para IA

Explore las tecnologías de almacenamiento y gestión necesarias para que su lago de datos brinde datos listos para la IA. (PDF, 888 KB)

Conéctese
Comunidad de Hadoop Conozca Hadoop Blogs