¿Qué es MapReduce?

Un hombre sonriente trabajando con un portátil en una oficina, representando el aprendizaje y la implementación de MapReduce.

Apache MapReduce es un proyecto de código abierto diseñado para generar y almacenar grandes conjuntos de datos. El sistema MapReduce se ejecuta en un sistema informático en clúster. El procesamiento consta de dos fases. La fase de mapeo procesa los datos de entrada, que se transforman en pares clave-valor. El resultado del proceso de mapeo se envía posteriormente al proceso de reducción, que comprime los registros de entrada.

¿Por qué es importante MapReduce?

Si necesitas procesar petabytes de datos de forma rápida y económica, necesitas MapReduce y Hadoop. Hoy en día, Hadoop es prácticamente sinónimo del uso del Big Data, ya que permite a las organizaciones utilizar miles de procesadores estándar para procesar grandes conjuntos de datos.

MapReduce surgió de la necesidad de que los sistemas pudieran gestionar de forma eficiente conjuntos de datos que podían alcanzar el orden de los petabytes. Los datos se presentan en numerosos formatos que deben procesarse, almacenarse y recuperarse. El Sistema de Archivos Distribuido de Hadoop (HDFS) utiliza MapReduce como componente central de su arquitectura para procesar una amplia variedad de datos de forma escalable y flexible.

MapReduce se puede ejecutar en lenguajes de programación habituales, como Python, C++ y Java.

Realización de una operación MapReduce

Para ejecutar un MapReduce en un conjunto de datos es necesario utilizar dos métodos fundamentales: la interfaz Mapper y la interfaz Reducer.

El Mapper

Las tareas que transforman los registros de entrada en registros intermedios se denominan «Maps». Un par de entrada puede asignarse a cero o más registros de salida (registros intermedios), que pueden ser de un tipo de datos derivado del par de valores de entrada. El proceso «Map» puede ejecutarse en paralelo con una tarea de trabajo por cada archivo de datos de entrada, por lo que, si un conjunto de datos se divide en diez archivos independientes, se crearán diez tareas «Map».

Las aplicaciones pueden utilizar un contador integrado para obtener estadísticas sobre la operación. Los resultados pueden agruparse, ordenarse y dividirse en particiones antes de enviarse a las tareas del reductor. Habrá una tarea del reductor por cada partición, a menos que el desarrollador decida realizar alguna agregación mediante un combinador para controlar el volumen de datos en esta fase.

Los registros de salida intermedios y ordenados tienen el formato (longitud de la clave, clave, longitud del valor, valor). Las aplicaciones pueden especificar un códec de compresión en la configuración.

Paralelización de las tareas de «map»

El número de tareas Map en paralelo depende del número total de bloques del archivo y del número de trabajadores por nodo, lo que puede ascender a miles en el caso de un archivo de varios terabytes.

El método «Reduce»

Los valores intermedios generados por el método «Mapper» pueden procesarse mediante el método «Reduce», que genera un número menor de valores que comparten una clave. El número de tareas del «Reducer» es configurable.

El método «Reducer» utiliza una serie de pasos que comienzan con una barajada y una ordenación, que se realizan de forma simultánea, seguidas del paso de reducción.

En la etapa «Shuffle», el marco de trabajo transfiere un flujo de salida determinado del «Mapper» al trabajo del «Reducer». En la etapa «Sort», el marco de trabajo agrupa la salida del «Mapper» por valor de clave. Las ordenaciones por claves secundarias son configurables.

The Reduce method is called for every <key, (list of values)> pair in the grouped inputs, which is eventually written to the file system in an unsorted form.

La salida del Reducer no está ordenada. La reducción puede hacerse opcional estableciendo el número de tareas en cero.

Partición

Los resultados intermedios del mapa se pueden dividir mediante una función hash que utiliza una parte del valor de la clave. El número de particiones determina el número de tareas reducidas.

Tanto el Mapper como el Reducer pueden utilizar la función Counter para generar estadísticas.

Las ventajas de MapReduce

A continuación se ofrece un resumen de las principales ventajas de MapReduce:

  • Una forma muy escalable de comprimir grandes volúmenes de datos.
  • Ofrece economía de código abierto.
  • Admite múltiples formatos de datos.
  • La biblioteca MapReduce se incluye de serie en la distribución de Apache Hadoop.
  • Fácil de usar para los desarrolladores.

Actian y la plataforma de inteligencia de datos

La plataformaActianData Intelligenceha sido diseñada específicamente para ayudar a las organizaciones a unificar, gestionar y comprender sus datos en entornos híbridos. Reúne la gestión de metadatos, la gobernanza, el linaje, el control de calidad y la automatización en una única plataforma. Esto permite a los equipos saber de dónde proceden los datos, cómo se utilizan y si cumplen los requisitos internos y externos.

A través de su interfaz centralizada, Actian ofrece información en tiempo real sobre las estructuras y los flujos de datos, lo que facilita la aplicación de políticas, la resolución de problemas y la colaboración entre departamentos. La plataforma también ayuda a vincular los datos con el contexto empresarial, lo que permite a los equipos utilizarlos de forma más eficaz y responsable. La plataforma de Actian está diseñada para adaptarse a los ecosistemas de datos en constante evolución, lo que garantiza un uso coherente, inteligente y seguro de los datos en toda la empresa.Solicita tu demostración personalizada.

Preguntas frecuentes

Apache MapReduce es un proyecto de código abierto diseñado para generar y almacenar grandes conjuntos de datos en un sistema informático en clúster a través de dos fases: una fase de mapeo, que procesa los datos de entrada para convertirlos en pares clave-valor, y una fase de reducción, que comprime esos registros.

MapReduce permite procesar de forma rápida y económica petabytes de datos, ya que ofrece a las organizaciones la posibilidad de utilizar miles de procesadores estándar para gestionar grandes conjuntos de datos de manera escalable y flexible.

El Mapper transforma los registros de entrada en pares clave-valor intermedios, en los que un par de entrada puede corresponderse con cero o más registros de salida. Las tareas de mapeo pueden ejecutarse en paralelo, con una tarea de trabajo por cada archivo de datos de entrada.

El Reducer toma los valores intermedios generados por el Mapper y crea un número menor de valores que comparten una clave, utilizando los pasos de barajado, ordenación y reducción para procesar las entradas agrupadas.

MapReduce se puede ejecutar en lenguajes habituales como Python, C++ y Java.

El número de tareas Map en paralelo depende del número total de bloques de archivo y de trabajadores por nodo, que puede ascender a miles en el caso de archivos de varios terabytes, lo que permite una escalabilidad masiva.

MapReduce es un componente fundamental de la arquitectura del Sistema de Archivos Distribuido de Hadoop (HDFS) y se incluye de serie en la distribución de Apache Hadoop.

MapReduce ofrece una compresión de datos altamente escalable, las ventajas económicas del código abierto, compatibilidad con múltiples formatos de datos, facilidad de uso para los desarrolladores e integración estándar con Apache Hadoop.