Inicio
Temas
MapReduce
Actualizado: 19 de noviembre de 2024
Colaboradores: Jim Holdsworth, Matthew Kosinski
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.
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.
Aprenda a encontrar la base de datos abierta y confiable adecuada para las necesidades de su negocio.
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.
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.
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.
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.
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.
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.
Cada reductor da lugar a los resultados de su procesamiento al HDFS u otro almacén de datos.
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í:
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:
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.
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.
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.
Además de la infraestructura principal de Hadoop, el ecosistema de Hadoop también incluye:
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:
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:
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.
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.
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.
Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por insights que ofrezca ventajas empresariales.
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.
Guía para líderes de datos sobre cómo crear una organización impulsada por datos para potenciar la ventaja competitiva del negocio.
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.