Inicio

Temas

MapReduce

¿Qué es MapReduce?
Emplee MapReduce con productos de IBM Suscribirse al boletín de Think
Ilustración con collage de pictogramas de monitor de computadora, servidor, nubes y puntos

Actualizado: 19 de noviembre de 2024 
Colaboradores
: Jim Holdsworth, Matthew Kosinski

¿Qué es MapReduce?

MapReduce es un modelo de programación que emplea el procesamiento paralelo para acelerar el procesamiento de datos a gran escala. MapReduce permite una escalabilidad masiva en cientos o miles de servidores dentro de un clúster de Hadoop.

El nombre "MapReduce" se refiere a las 2 tareas que realiza el modelo para ayudar a "fragmentar" una gran tarea de procesamiento de datos en muchas tareas más pequeñas que pueden ejecutar más rápido en paralelo.

  • La primera es la "tarea de mapa", que toma un conjunto de datos y lo convierte en otro conjunto de datos formateados como pares clave/valor, como ciudades (claves) y temperaturas máximas diarias (valores).

  • La segunda es la "tarea de reducción", que toma los resultados de una tarea de mapa, agrega todos los valores con la misma clave y procesa los datos para producir un conjunto final de pares clave/valor.

El modelo de programación MapReduce es uno de los componentes de procesamiento centrales en el corazón de Apache Hadoop, una infraestructura de software de código abierto respaldada por la Apache Software Foundation y construida sobre el lenguaje de programación Java.

El modelo MapReduce también se puede emplear fuera de Hadoop.

La IA exige nuevas formas de gestión de datos

Aprenda a encontrar la base de datos abierta y confiable adecuada para las necesidades de su negocio.

Contenido relacionado Regístrese para obtener la guía sobre modernización de aplicaciones
Cómo funciona MapReduce

MapReduce ayuda a dividir los proyectos de procesamiento de datos en partes más pequeñas para que puedan ejecutar más rápido.

El uso de un procesador para analizar un archivo enorme con terabytes o petabytes de datos puede llevar, por ejemplo, 10 horas. Un trabajo de MapReduce puede dividir ese mismo archivo de datos en 10 tareas que se ejecutan en paralelo en 10 procesadores. Es posible que este trabajo solo tarde una hora o menos en ejecutar. Los datos se pueden agregar desde los nodos informáticos distribuidos para producir un resultado.

Si bien el mapeo y la reducción son las funciones esenciales del modelo MapReduce, el proceso general incluye algunos pasos más.

Entrada

Una aplicación MapReduce acepta datos de entrada, que pueden incluir datos estructurados o no estructurados. Las aplicaciones MapReduce suelen trabajar con archivos de entrada almacenados en el sistema de archivos distribuidos Hadoop (HDFS), pero el modelo también puede funcionar con otras fuentes de datos. (Para obtener más información, consulte “MapReduce dentro del ecosistema Hadoop”).

Para un trabajo específico, la infraestructura MapReduce ayuda a seleccionar servidores distribuidos, gestionar las comunicaciones y las transferencias de datos y soportar la tolerancia a fallos y la redundancia.

Dividir
 

Los datos de entrada se dividen en bloques más pequeños. Estos bloques se distribuyen a los mapeadores, las funciones que realizan el mapeo en el siguiente paso, ubicados en varios nodos informáticos. El marco MapReduce tiene como objetivo una asignación de datos aproximadamente uniforme entre mapeadores para lograr un equilibrio de carga eficiente.

Mapeo
 

En cada nodo, la función de mapa procesa los datos que recibe, convirtiendo los datos en pares clave/valor.

El número total de mapeadores se determina dentro de la infraestructura de Hadoop, en función del volumen total de datos y los bloques de memoria disponibles en cada mapeador. Los parámetros para los mapeadores, reductores y formatos de salida se pueden establecer dentro del clúster de Hadoop.

Barajar
 

El marco de Hadoop ordena los resultados del mapa y asigna todos los pares clave/valor con la misma "clave" (tema) al mismo reductor. Por ejemplo, en un conjunto de datos de ciudades y sus temperaturas máximas diarias, cualquier dato con la clave “Tokio” iría al mismo reductor.

El reducer, como su nombre indica, es la función que realiza el paso reduce.

Reducir
 

Las funciones de reducción procesan los pares clave/valor que emiten los mapeadores. Esto puede implicar fusionar, tabular o realizar otras operaciones en los datos, según el tipo de procesamiento requerido.

La asignación y la reducción se pueden realizar en el mismo conjunto de servidores, pero esto es opcional. 

Resultado
 

Cada reductor da lugar a los resultados de su procesamiento al HDFS u otro almacén de datos.

Un ejemplo de MapReduce

Independientemente de la cantidad de datos que una organización quiera analizar, los principios clave siguen siendo los mismos.

Para este ejemplo, el conjunto de datos incluye ciudades (las claves) y las temperaturas diarias correspondientes (los valores) registradas para cada ciudad. Un ejemplo de par clave/valor podría ver así: <Toronto, 18>.

Los datos se distribuyen en varios archivos. Cada archivo puede incluir datos de una combinación de ciudades y puede incluir la misma ciudad varias veces.

A partir de este conjunto de datos, el usuario desea identificar la "temperatura máxima" para cada ciudad a lo largo del periodo rastreado.

Una implementación de MapReduce para manejar este trabajo podría ver así:

  1. Los archivos de datos que contienen información sobre la temperatura se introducen en la aplicación MapReduce como entrada.

  2. Los archivos se dividen en tareas de mapa, y cada tarea se asigna a uno de los mapeadores.

  3. Los mapeadores convierten los datos en pares clave/valor.

  4. Las salidas del mapa se barajan y ordenan para que todos los valores con la misma clave de ciudad terminen con el mismo reductor. Por ejemplo, todos los valores de temperatura para Toronto van a un reductor, mientras que otro reductor agrega todos los valores para Londres.

  5. Cada reductor procesa sus datos para determinar el valor de temperatura más alto para cada ciudad. Luego, los datos se reducen al par clave y valor más alto para cada ciudad.

  6. Tras la fase de reducción, se pueden recoger los valores más altos para obtener un resultado: <Tokio, 38> < Londres, 27> < Nueva York, 33> < Toronto, 32>.
MapReduce dentro del ecosistema Hadoop

El ecosistema Hadoop es una suite de módulos de código abierto diseñados para trabajar juntos para promover la eficiencia. Hay módulos que constituyen la infraestructura principal de Hadoop, incluido MapReduce más 3 más:

Sistema de archivos distribuido Hadoop (HDFS)
 

HDFS es un sistema de archivos distribuido para almacenar datos de aplicaciones en hasta miles de servidores básicos.

HDFS está diseñado para proporcionar tolerancia a fallas para Hadoop y proporcionar un acceso rápido a los datos. De forma predeterminada, los bloques de datos se replican en varios nodos en el momento de la carga o la escritura.

La arquitectura HDFS cuenta con un NameNode para gestionar el espacio de nombres del sistema de archivos y el acceso a los archivos, junto con varios DataNodes para gestionar el almacenamiento de datos.

Otro negociador de recursos (YARN)
 

Apache Hadoop de código abierto, YARN, es una infraestructura para la programación de trabajos y la gestión de recursos de clúster. Admite múltiples cargas de trabajo, como consultas SQL, modelado avanzado y transmisión en tiempo real.

Hadoop Common
 

Este módulo es una colección de utilidades de recursos y bibliotecas que soportan otros módulos de Hadoop. También conocido como Hadoop Core, incluye múltiples recursos para recuperación automática de fallas, abstracción a nivel de sistema de archivos y nivel de sistema operativo, archivos y scripts Java Archive (JAR), además de más.

Otros módulos
 

Además de la infraestructura principal de Hadoop, el ecosistema de Hadoop también incluye:

  • HBase (una base de datos NoSQL no relacional)
  • Mahout y Spark MLlib (bibliotecas de algoritmos para machine learning)
  • Oozie (un programador de trabajos)
  • Apache Hive y Apache Pig (herramientas de procesamiento de datos basadas en consultas)
  • Solr y Lucene (para búsqueda e indexación)
  • Spark (motor de procesamiento de datos en memoria) 
  • Zookeeper (coordinación de clústeres)
Beneficios de MapReduce

La programación de MapReduce ofrece varios beneficios que pueden ayudar a las organizaciones a obtener valiosos insights del análisis de big data, como:

  • Escalabilidad: MapReduce permite a las organizaciones procesar petabytes de datos almacenados en el HDFS en múltiples servidores o nodos.

  • Procesamiento más rápido: Con procesamiento paralelo y movimiento mínimo de datos, MapReduce ofrece optimización del procesamiento de datos para volúmenes masivos de datos.

  • Simplicidad: los desarrolladores pueden escribir aplicaciones MapReduce en los lenguajes de programación que elijan, incluidos Java, C++ y Python.

  • Ahorro de costos: Como programa de código abierto, MapReduce puede ahorrarle a una organización algo de presupuesto en gastos de software. Dicho esto, aún habrá costos asociados con la infraestructura y el personal de ingeniería de datos.
Casos de uso de MapReduce

MapReduce puede manejar de manera eficiente muchos casos de uso sencillos, aunque las tareas complejas de procesamiento de datos pueden ejecutar más rápido en otras aplicaciones. Estas son algunas aplicaciones adecuadas para el enfoque de procesamiento paralelo de MapReduce:

  • Integración de datos, donde el MapReduce infraestructura/marco se emplea para ejecutar el proceso de extracción, transformación y carga (ETL) para preparar los datos para su análisis y almacenamiento.

  • Procesamiento de imágenes, donde tareas como la clasificación de imágenes se pueden dividir en conjuntos de datos más pequeños y procesar en paralelo.

  • Análisis de registros, como la identificación de tendencias mediante la revisión de archivos de registro de servidores sitio web o de aplicaciones.

  • Aprendizaje automático (ML), donde MapReduce puede ayudar con las tareas de entrenamiento de ML, como filtrado colaborativo, agrupación en clústeres k-means y regresión lineal.

  • Análisis de sentimiento, en el que MapReduce puede ayudar a sumar las puntuaciones de los clientes en un sitio web o identificar clústeres de respuesta, por ejemplo.

  • Tabulación, como contar cuántos clientes renovaron sus cuentas, por país, durante el último año.

  • Minería de texto, como trabajos de recuento de palabras que rastrean el número de veces que aparece una palabra en un determinado conjunto de entrada, como un panel de comentarios.
Historia de MapReduce

El paradigma de programación MapReduce fue creado en 2004 por los informáticos de Google Jeffery Dean y Sanjay Ghemawat. El objetivo del modelo MapReduce es simplificar la transformación y el análisis de grandes conjuntos de datos a través del procesamiento paralelo masivo en grandes clústeres de hardware básico. También permite a los programadores centrar en los algoritmos en lugar de en la gestión de datos.

Si bien Google introdujo el primer marco MapReduce, Apache Hadoop MapReduce es quizá el más popular.

MapReduce jugó un papel clave en el avance de los analytics de big data, pero también tiene sus desventajas. Por ejemplo, MapReduce normalmente no retiene los datos en la memoria y la lógica iterativa solo es posible encadenando aplicaciones de MapReduce. Estos factores agregan mayor complejidad y pueden dar lugar a tiempos de procesamiento más largos.

Si bien MapReduce sigue siendo ampliamente empleado, especialmente en sistemas existentes, muchas organizaciones están pasando a infraestructuras más rápidas o más especializadas, como Apache Spark, para aplicaciones de big data.

Soluciones relacionadas
Software y soluciones de gestión de datos

Diseñe una estrategia de datos que elimine los silos de datos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

Explore las soluciones de gestión de datos
IBM watsonx.data™

watsonx.data le permite escalar los analytics y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gestionado.

Descubra watsonx.data
Servicios de consultoría en datos y analytics

Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por insights que ofrezca ventajas empresariales.

Descubra los servicios de analytics
Recursos Gestión de datos para IA y analytics a escala

Explore los beneficios de trabajar con un lago de datos, incluidos datos más confiables y una ejecución más confiable de analytics y proyectos de AI.

The Data Differentiator

Guía para líderes de datos sobre cómo crear una organización impulsada por datos para potenciar la ventaja competitiva del negocio.

¿Qué es Apache Hadoop?

Apache Hadoop es una infraestructura de software de código abierto que ofrece procesamiento distribuido muy confiable de grandes conjuntos de datos mediante modelos de programación simples.

Dé el siguiente paso

Escale cargas de trabajo de IA para todos sus datos, en cualquier lugar, con IBM watsonx.data, un almacén de datos adecuado para su propósito creado sobre una arquitectura de lakehouse de datos abierta.

Explore watsonx.data Reserve una demostración en vivo