Definición: ¿Qué significa MapReduce?
MapReduce es un modelo de programación introducido por Google para procesar y generar grandes conjuntos de datos en grupos de computadoras.
Google primero formuló el marco con el propósito de servir la indexación de páginas web de Google, y el nuevo marco reemplazó los algoritmos de indexación anteriores. Los desarrolladores principiantes encuentran beneficioso el marco MapReduce porque las rutinas de la biblioteca se pueden usar para crear programas paralelos sin preocuparse por la comunicación entre el infra-clúster, el monitoreo de tareas o los procesos de manejo de fallas.
MapReduce se ejecuta en un gran grupo de máquinas básicas y es altamente escalable. Tiene varias formas de implementación proporcionadas por múltiples lenguajes de programación, como Java, C # y C ++.
Techinfo explica MapReduce
El marco MapReduce tiene dos partes:
- Una función llamada "Mapa", que permite que diferentes puntos del clúster distribuido distribuyan su trabajo
- Una función llamada "Reducir", que está diseñada para reducir la forma final de los resultados de los clústeres en una sola salida.
La principal ventaja del marco MapReduce es su tolerancia a fallas, donde se esperan informes periódicos de cada nodo en el clúster cuando se completa el trabajo.
Una tarea se transfiere de un nodo a otro. Si el nodo principal nota que un nodo ha estado en silencio durante un intervalo más largo de lo esperado, el nodo principal realiza el proceso de reasignación a la tarea congelada / retrasada.
El marco MapReduce está inspirado en las funciones "Map" y "Reducir" utilizadas en la programación funcional. El procesamiento computacional ocurre en los datos almacenados en un sistema de archivos o dentro de una base de datos, que toma un conjunto de valores clave de entrada y produce un conjunto de valores clave de salida.
Cada día, numerosos programas MapReduce y trabajos MapReduce se ejecutan en los clústeres de Google. Los programas se paralelizan automáticamente y se ejecutan en un gran grupo de máquinas básicas. El sistema de tiempo de ejecución se ocupa de dividir los datos de entrada, programar la ejecución del programa en un conjunto de máquinas, manejar las fallas de la máquina y administrar la comunicación entre máquinas requerida. Los programadores sin experiencia con sistemas paralelos y distribuidos pueden utilizar fácilmente los recursos de un gran sistema distribuido.
MapReduce se utiliza en grep distribuido, ordenamiento distribuido, reversión de gráfico de vínculos web, estadísticas de registro de acceso web, agrupación de documentos, aprendizaje automático y traducción automática estadística.