Geek Dirt

Abr 24, 2021

En el primer post de la serie Hadoop Introducción de Hadoop y ejecución de un programa de reducción de mapas , expliqué los conceptos básicos de Reducción de mapas. En este post estoy explicando sus diferentes componentes como Particionar, Mezclar, Combinar, Fusionar, Ordenar primero y luego cómo funciona.

Particionamiento:

Si el número de reductores es 2 y la función hash es:

#This function would return the data passes in itfunction hash(data){#this is just for example purposereturn data;}

luego para la tecla 1:

número de partición = hash(1) % 2 = 1;

para la tecla 2:

número de partición = hash(2) % 2 = 0;

para la tecla 4:

número de partición = hash(4) % 2 = 0;

Eso significa que la salida para la tecla 1 iría en partition_1 y la salida para las teclas 2 y 4 iría en partition_0.

Barajar:

En la salida final de la tarea de mapa puede haber varias particiones y estas particiones deben ir a diferentes tareas de reducción. Barajar es básicamente transferir particiones de salida de mapa a las tareas de reducción correspondientes. Tarea de mapa maestro de aplicaciones notificado sobre la finalización de la tarea de mapa y maestro de aplicaciones notifica al reductor correspondiente para copiar la salida del mapa en la máquina de reducción.

Combinador:

Clasificación:

Solo está ordenando los datos en función de las claves.

Fusión:

Esto sucede en el lado del reductor. Reductor puede obtener datos de múltiples tareas de mapas y, a través de la fusión, fusiona los datos de diferentes tareas de mapas en una sola unidad, manteniendo el orden de clasificación.

Reducir el Mapa en detalle:

Mapa:

Tiene un in memory circular buffer y escribe directamente en el búfer. Cuando el búfer alcanza el valor de umbral (predeterminado: 80%), comienza a escribir en spill file a través de un background threadseparado. La tarea de mapa aún puede escribir su salida en el búfer mientras se ejecuta el subproceso en segundo plano. Antes de escribir en el archivo spill, la salida del mapa que son pares clave-valor se particionan y ordenan. Si hay un combinador, también se ejecuta lo que reduce el tamaño de salida.

Después de la tarea, todos los archivos de extensión se ordenan de nuevo y se crea un solo archivo que se divide y ordena. Significa que este archivo de salida final tiene múltiples particiones. Después de completar la tarea de mapa para un nodo, su salida se envía al reductor. Es por eso que ve reducir tarea más de 0% mientras que map es menos de <100%.

Cuando tiene una tarea de solo mapa, no se barajan en absoluto, lo que significa que los mapeadores escribirán la salida final directamente en los HDFS.

Reducir:

Después de obtener datos de la tarea de mapa, fusiona los datos en una sola unidad durante merge phase. En lugar de fusionar directamente todos los archivos en uno, utiliza el concepto de merge factor, cuyo propósito es minimizar la cantidad de datos escritos en el disco. Luego, durante la fase de reducción, se invoca la función de reducción para cada tecla de la salida ordenada. La salida de esta fase se escribe directamente en el sistema de archivos de salida, normalmente HDFS.

Enlaces Útiles:

Introducción y el trabajo de Hilado

Deja una respuesta

Tu dirección de correo electrónico no será publicada.