¿Qué es MapReduce en Hadoop? Grandes datos Architectura
¿Qué es MapReduce en Hadoop?
MapReduce es un marco de software y un modelo de programación que se utiliza para procesar grandes cantidades de datos. MapReduce El programa trabaja en dos fases, a saber, Mapear y Reducir. Las tareas de mapa se ocupan de la división y el mapeo de datos, mientras que las tareas de reducción mezclan y reducen los datos.
Hadoop es capaz de ejecutar programas MapReduce escritos en varios idiomas: Java, Rubí, Pythony C++Los programas de Map Reduce en la computación en la nube son de naturaleza paralela, por lo que son muy útiles para realizar análisis de datos a gran escala utilizando múltiples máquinas en el clúster.
La entrada a cada fase es valor clave pares. Además, todo programador debe especificar dos funciones: función de mapa y reducir la función.
MapReduce ArchiTecnología en Big Data explicada con ejemplo.
Todo el proceso pasa por cuatro fases de ejecución, a saber, dividir, mapear, barajar y reducir.
Ahora, en este tutorial de MapReduce, comprendamos con un ejemplo de MapReduce:
Considere que tiene los siguientes datos de entrada para su MapReduce en Programa de grandes datos
Welcome to Hadoop Class Hadoop is good Hadoop is bad
El resultado final de la tarea MapReduce es
malos | 1 |
Clase | 1 |
bueno | 1 |
Hadoop | 3 |
is | 2 |
a | 1 |
Te damos la bienvenida | 1 |
Los datos pasan por las siguientes fases de MapReduce en Big Data
Divisiones de entrada:
Una entrada a un trabajo de MapReduce en Big Data se divide en partes de tamaño fijo llamadas divisiones de entrada La división de entrada es una parte de la entrada que consume un solo mapa.
Mapeo
Esta es la primera fase de la ejecución del programa map-reduce. En esta fase, los datos de cada división se pasan a una función de mapeo para producir valores de salida. En nuestro ejemplo, una tarea de la fase de mapeo es contar una cantidad de ocurrencias de cada palabra de las divisiones de entrada (más detalles sobre la división de entrada se dan a continuación) y preparar una lista en forma de
Arrastramiento
Esta fase consume el resultado de la fase de Mapeo. Su tarea es consolidar los registros relevantes del resultado de la fase de Mapeo. En nuestro ejemplo, las mismas palabras están agrupadas junto con su respectiva frecuencia.
La reducción de
En esta fase, se agregan los valores de salida de la fase de mezcla. Esta fase combina los valores de la fase de mezcla y devuelve un único valor de salida. En resumen, esta fase resume el conjunto de datos completo.
En nuestro ejemplo, esta fase agrega los valores de la fase de barajado, es decir, calcula la aparición total de cada palabra.
MapReduce Architectura explicada en detalle
- Se crea una tarea de mapa para cada división que luego ejecuta la función de mapa para cada registro de la división.
- Siempre es beneficioso tener múltiples divisiones porque el tiempo necesario para procesar una división es pequeño en comparación con el tiempo necesario para procesar toda la entrada. Cuando las divisiones son más pequeñas, es mejor que el procesamiento tenga una carga equilibrada, ya que estamos procesando las divisiones en paralelo.
- Sin embargo, tampoco es deseable tener divisiones de tamaño demasiado pequeño. Cuando las divisiones son demasiado pequeñas, la sobrecarga de gestionar las divisiones y la creación de tareas de mapas comienza a dominar el tiempo total de ejecución del trabajo.
- Para la mayoría de los trabajos, es mejor hacer un tamaño de división igual al tamaño de un bloque HDFS (que es 64 MB, de forma predeterminada).
- La ejecución de tareas de mapas da como resultado la escritura de la salida en un disco local en el nodo respectivo y no en HDFS.
- La razón para elegir el disco local en lugar de HDFS es evitar la replicación que tiene lugar en el caso de la operación de almacenamiento HDFS.
- La salida del mapa es una salida intermedia que se procesa mediante tareas de reducción para producir la salida final.
- Una vez que se completa el trabajo, la salida del mapa se puede desechar. Por lo tanto, almacenarlo en HDFS con replicación se vuelve excesivo.
- En caso de falla del nodo, antes de que la tarea de reducción consuma la salida del mapa, Hadoop vuelve a ejecutar la tarea del mapa en otro nodo y vuelve a crear la salida del mapa.
- Reducir la tarea no funciona con el concepto de localidad de datos. Una salida de cada tarea de mapa se envía a la tarea de reducción. La salida del mapa se transfiere a la máquina donde se ejecuta la tarea de reducción.
- En esta máquina, la salida se fusiona y luego se pasa a la función de reducción definida por el usuario.
- A diferencia de la salida del mapa, la salida reducida se almacena en HDFS (la primera réplica se almacena en el nodo local y otras réplicas se almacenan en nodos fuera del rack). Entonces, escribiendo la salida reducida
¿Cómo funciona MapReduce Organizes?
Ahora, en este tutorial de MapReduce, aprenderemos cómo funciona MapReduce.
Hadoop divide el trabajo en tareas. Hay dos tipos de tareas:
- Tareas de mapa (Divisiones y mapeo)
- Reducir tareas (Barajar, Reducir)
como se ha mencionado más arriba.
El proceso de ejecución completo (ejecución de tareas de Mapa y Reducción, ambas) está controlado por dos tipos de entidades llamadas
- rastreador de empleo: Actúa como un dominar (responsable de la ejecución completa del trabajo enviado)
- Múltiples rastreadores de tareas: Actúa como esclavos, cada uno de ellos realizando el trabajo
Por cada trabajo enviado para ejecución en el sistema, existe un rastreador de empleo que reside en Nodo de nombre y aquí están múltiples rastreadores de tareas que residen en nodo de datos.
- Un trabajo se divide en múltiples tareas que luego se ejecutan en múltiples nodos de datos en un clúster.
- Es responsabilidad del rastreador de trabajos coordinar la actividad programando tareas para que se ejecuten en diferentes nodos de datos.
- La ejecución de una tarea individual la supervisa el rastreador de tareas, que reside en cada nodo de datos que ejecuta parte del trabajo.
- La responsabilidad del rastreador de tareas es enviar el informe de progreso al rastreador de trabajos.
- Además, el rastreador de tareas envía periódicamente 'latido del corazón' señal al Jobtracker para notificarle el estado actual del sistema.
- Por lo tanto, el rastreador de trabajos realiza un seguimiento del progreso general de cada trabajo. En caso de que falle la tarea, el rastreador de trabajos puede reprogramarla en un rastreador de tareas diferente.