Tabla de contenido:
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 la página web de Google, y el nuevo marco reemplazó los algoritmos de indexación anteriores. Los desarrolladores principiantes consideran que el marco MapReduce es beneficioso porque las rutinas de la biblioteca se pueden usar para crear programas paralelos sin preocuparse por la comunicación infra-cluster, el monitoreo de tareas o los procesos de manejo de fallas.
MapReduce se ejecuta en un gran grupo de máquinas de productos básicos y es altamente escalable. Tiene varias formas de implementación proporcionadas por múltiples lenguajes de programación, como Java, C # y C ++.
Techopedia explica MapReduce
El marco de 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 grupos en una sola salida
La principal ventaja del marco de 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 maestro 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 / demorada.
El marco MapReduce está inspirado en las funciones "Mapa" 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 de clave de entrada y produce un conjunto de valores de clave de salida.
Cada día, numerosos programas de MapReduce y trabajos de MapReduce se ejecutan en los clústeres de Google. Los programas se paralelizan y ejecutan automáticamente en un gran grupo de máquinas comerciales. El sistema de tiempo de ejecución se ocupa de particionar 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 usar fácilmente los recursos de un gran sistema distribuido.
MapReduce se utiliza en grep distribuido, clasificación distribuida, inversión de gráficos de enlaces web, estadísticas de registro de acceso web, agrupación de documentos, aprendizaje automático y traducción automática estadística.