¿Qué es MapReduce en Hadoop?
Mapa reducido Es un marco de software y un modelo de programación que se utiliza para procesar grandes cantidades de datos. Mapa reducido la programación funciona en dos pasos, a saber, mapeo y encogimiento. Las tareas de mapa se ocupan de la división y el mapeo de datos y Reducir las tareas y reducir los datos.
Hadoop puede ejecutar programas MapReduce escritos en varios lenguajes: Java, Ruby, Python y C ++. Los programas Map Reduction en la computación en la nube son paralelos entre sí, por lo que son muy útiles para el análisis de datos a gran escala utilizando múltiples máquinas en el clúster.
Es la entrada para cada paso. valor clave pares. Además, cada programador debe especificar dos funciones: función de mapa y reducir la función.
En este tutorial para principiantes de Hadoop MapReduce, aprenderá:
Arquitectura MapReduce en Big Data explicada en detalle
Todo el proceso pasa por cuatro etapas de ejecución, a saber, división, mapeo, perturbación y reducción.
Ahora, en este tutorial de MapReduce, entendamos el ejemplo de MapReduce:
Considere que tiene los siguientes datos de entrada para su programa MapReduce en Big Data
Welcome to Hadoop Class Hadoop is good Hadoop is bad
El resultado final es la tarea MapReduce
olc | 1 |
Sonó | 1 |
bien | 1 |
Hadoop | 3 |
es | 2 |
a | 1 |
Bienvenidos | 1 |
Los datos pasan por los siguientes pasos de MapReduce en Big Data
Grietas de entrada:
La entrada en una publicación de MapReduce en Big Data se divide en partes de un tamaño fijo llamadas grietas de entrada Una división de entrada es una parte de la entrada que consume un solo mapa
Cartografía
Este es el primer paso en la implementación del programa de reducción de mapas. En este paso, los datos de cada división se envían a una función de mapeo para producir valores de salida. En nuestro ejemplo, el trabajo del paso de mapeo es contar algunos episodios 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
Disturbio
Este paso consume el resultado del paso Mapeo. Su tarea es consolidar los registros relevantes del resultado de la fase de mapeo. En nuestro ejemplo, las mismas palabras se agrupan a lo largo de su frecuencia respectiva.
Disminución
En este paso, se agregan los valores de salida de la fase de barajado. Este paso combina valores del paso Shuffling y devuelve un valor de salida individual. En resumen, este paso resume todo el conjunto de datos.
En nuestro ejemplo, este paso agrega los valores del paso Shuffling, es decir, calcula las ocurrencias totales de cada palabra.
La arquitectura de MapReduce explicada en detalle
Se crea una tarea de mapa para cada división que luego realiza una función de mapa para cada registro en la división.
Siempre es beneficioso tener múltiples divisiones porque el tiempo que se tarda en procesar una división es pequeño en comparación con el tiempo que se tarda en procesar toda la entrada. Cuando las grietas son más pequeñas, es mejor cargar el procesamiento de manera uniforme ya que estamos procesando las grietas en paralelo.
Sin embargo, no es deseable tener grietas de tamaño demasiado pequeño. Cuando las divisiones son demasiado pequeñas, la sobrecarga en la gestión de las divisiones y la creación de tareas de mapa de avance comienza en todo el tiempo de ejecución del trabajo.
Para la mayoría de las publicaciones, es mejor hacer un tamaño de división igual al tamaño de un bloque HDFS (es decir, 64 MB, de forma predeterminada).
La ejecución de tareas de mapa da como resultado una salida escrita en un disco local en el nodo respectivo y no en HDFS.
La razón para seleccionar un disco local en HDFS es evitar la replicación que ocurre en el caso de la operación de almacenamiento HDFS.
Una salida de mapa es una salida intermedia que se procesa reduciendo tareas para producir la salida final.
Una vez que se completa el trabajo, la salida del mapa se puede descartar. Por lo tanto, almacenarlo en HDFS se convierte en un uso excesivo para la replicación.
En el caso de que un nodo falle, antes de que la tarea de reducción agote la salida del mapa, Hadoop vuelve a conectar la tarea del mapa a otro nodo y vuelve a crear la salida del mapa.
- Reducir la tarea del concepto de distrito de datos no funciona. La salida de cada tarea de mapa se agrega a la tarea reducida. La salida del mapa se transfiere a la máquina donde se está ejecutando la tarea de reducción.
- En esta máquina, la salida se mezcla y luego se envía a la función de reducción definida por el usuario.
- A diferencia de la salida de mapas, 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 bastidor). Así que escribe la salida reducida
¿Cómo MapReduce organiza el trabajo?
Ahora, en este tutorial de MapReduce, aprenderemos cómo funciona MapReduce
Hadoop el trabajo se divide en tareas. Hay dos tipos de tareas:
Tareas de mapeo (Grietas y mapeo)
Reducir tareas (Perturbación, Reducción)
como se ha mencionado más arriba.
Todo el proceso de ejecución (tareas de Maps y Shrink, ambas) está controlado por dos tipos de entidades conocidas como
Seguimiento de trabajos: Acciones como Maestro (responsable de completar la publicación enviada en su totalidad)
Varios rastreadores de tareas: Actúa como esclavos todos ellos haciendo el trabajo
Por cada publicación enviada para su ejecución en el sistema, hay una publicación Seguimiento de trabajos quien vive Namenode y si múltiples indicadores Que viven Datanode.
Un trabajo se divide en varias tareas que luego se ejecutan en varios nodos de datos en un clúster.
Un rastreador de trabajos es responsable de coordinar la actividad programando tareas para que se ejecuten en diferentes nodos de datos.
Luego, el rastreador de tareas se encarga de una tarea individual, que reside en cada nodo de datos que forma parte del trabajo.
Es responsabilidad del rastreador de tareas enviar el informe de progreso al solicitante de empleo.
Además, un rastreador envía tareas periódicamente ‘latido del corazón’ una señal al Jobtracker para informarle del estado actual del sistema.
Por lo tanto, un rastreador de trabajos realiza un seguimiento del progreso general de cada trabajo. Si una tarea falla, el rastreador de trabajos puede reprogramarla a un rastreador de tareas diferente.