La fase aleatoria del flujo de la aplicación de hadoop mapreduce

Después de la fase de Mapa y antes del comienzo de la fase Reducir es un proceso de transferencia, conocida como mezclar y clasificar. Aquí, los datos de las tareas asignador se prepara y se trasladaron a los nodos en el que se ejecutan las tareas reductor. Cuando la tarea asignador se ha completado, los resultados están ordenados por clave, particionan si hay varios reductores, y luego se escriben en el disco.

Video: YARN: Hadoop Beyond MapReduce

Se puede ver este concepto en la siguiente figura, que muestra el flujo de procesamiento de datos MapReduce y su interacción con los componentes físicos del clúster Hadoop. (Una nota rápida: Los datos de la memoria está representado por cuadrados blancos, y los datos almacenados en el disco está representado por cuadrados grises).

Para acelerar el proceso general de MapReduce, los datos se mueven inmediatamente a los nodos de las tareas reductor, para evitar una inundación de actividad de la red cuando la tarea final asignador termine su trabajo. Esta transferencia se produce mientras la tarea asignador está en marcha, como las salidas para cada registro - recuerda - se almacenan en la memoria de una tarea reductor de espera. (Se puede configurar si esto ocurre - o no sucede -. Y también el número de hilos que participan)

Tenga en cuenta que a pesar de que una tarea reductor podría tener la mayor parte de la producción de la tarea asignador, el procesamiento de la tarea de reducir no puede comenzar hasta que todas las tareas de asignador han terminado.

Para evitar escenarios en los que el desempeño de un trabajo MapReduce se ve obstaculizada por una tarea asignador desordenada que se está ejecutando en un nodo esclavo de bajo rendimiento, el marco MapReduce utiliza un concepto llamado ejecución especulativa.

En el caso de algunas tareas de asignador se están ejecutando más lento que lo que se considera razonable, el Maestro de aplicaciones se generan tareas duplicadas (en Hadoop 1, el JobTracker hace esto). Cualquiera que sea la tarea termina primero - el duplicado o el original - sus resultados se almacenan en el disco, y la otra tarea es asesinada. Si está monitorizando sus puestos de trabajo de cerca y se preguntan por qué hay más tareas de asignador de funcionamiento de lo esperado, esta es una razón probable.

Video: Apache Hadoop - MapReduce (MR2) and YARN

La salida de las tareas de asignador no se escribe en HDFS, sino más bien en el disco local en el nodo esclavo que se ha ejecutado la tarea asignador. Como tal, no se replican a través del clúster Hadoop.

Aparte de la compresión de la salida, se puede aumentar potencialmente el rendimiento mediante la ejecución de una tarea de combinación. Esta táctica simple, que se muestra aquí, implica la realización de reducir un local de la salida para las tareas de asignador individuales.

En la mayoría de los casos, no se necesita programación adicional, como se puede decir que el sistema utilice la función de reductor. Si no está utilizando su función reductora, es necesario asegurarse de que la salida del combinador función es idéntica a la de la función de reductor.

Es hasta el marco MapReduce si la función combinador necesita ser ejecutado una vez, varias veces, o nunca, por lo que es fundamental que el código del combinador asegura que los resultados finales no son afectados por múltiples ejecuciones. Ejecutar el combinador puede producir un beneficio en el rendimiento al reducir la cantidad de datos intermedio que de otro modo deben ser transferidos por la red.

Esto también reduce la cantidad de procesamiento de las tareas reductor tendría que hacer. Está ejecutando una tarea adicional aquí, así que es posible que cualquier ganancia de rendimiento es insignificante o incluso puede dar lugar a un peor rendimiento en general. Su kilometraje puede variar, así que probarlo con cuidado.

Después de que todos los resultados de las tareas de asignador se copian en los nodos de las tareas reductor, estos archivos se fusionaron y ordenados.

Artículos Relacionados