La fase mapa de flujo de la aplicación de hadoop mapreduce

Video: Hadoop - Map Reduce application development using Java

Una aplicación MapReduce procesa los datos en las divisiones de entrada en una registro por registro base y que cada registro se entiende por MapReduce para ser una valor clave par. Una vez que se han calculado las divisiones de entrada, las tareas de asignador pueden comenzar a procesar ellos - es decir, justo después de facilidad de programación del Administrador de recursos les asigna sus recursos de procesamiento. (En Hadoop 1, la JobTracker asigna tareas Mapper para ranuras de proceso específicas.)

La tarea en sí asignador procesa su entrada de dividir un registro a la vez - en la figura, este disco en solitario está representado por el par clave / valor. En el caso de los datos de vuelo, cuando se calculan las divisiones de entrada (usando el método de procesamiento de archivos por defecto para archivos de texto), el supuesto es que cada fila del archivo de texto es un único registro.

Para cada registro, el texto de la propia fila representa el valor y el desplazamiento de cada fila desde el principio de la división de bytes se considera que es la clave.

Usted podría preguntarse por qué el número de fila no se utiliza en lugar del desplazamiento de bytes. Cuando se considera que un archivo de texto muy grande se divide en muchos bloques de datos individuales, y se procesa todas las divisiones, el número de fila es un concepto arriesgado.

Video: Hadoop Map Reduce Programming 101 - 07 Compile And Execute

El número de líneas en cada división varía, por lo que sería imposible calcular el número de filas precedentes el que está siendo procesado. Sin embargo, con el desplazamiento de bytes, puede ser preciso, ya que cada bloque tiene un número fijo de bytes.

Como tarea asignador procesa cada registro, se genera un nuevo par clave / valor: La clave y el valor que aquí pueden ser completamente diferente del par de entrada. La salida de la tarea asignador es la colección completa de todos estos pares clave / valor.

Antes de que el archivo de salida final de cada tarea asignador está escrito, la salida se divide sobre la base de la llave y ordenada. Esta partición significa que todos los valores para cada tecla están agrupados juntos.

En el caso de la aplicación de muestra bastante básico, no hay más que un solo reductor, por lo que toda la producción de la tarea asignador se escribe en un solo archivo. Sin embargo, en los casos con múltiples reductores, cada tarea asignador puede generar varios archivos de salida también.

El desglose de estos archivos de salida se basa en la clave de particionamiento. Por ejemplo, si sólo hay tres claves de particionamiento de salida distintas para las tareas de asignador y han configurado tres reductores para el trabajo, habrá tres archivos de salida asignador. En este ejemplo, si una tarea en particular asignador procesa una fracción de entrada y genera una salida con dos de las tres teclas, habrá sólo dos archivos de salida.

Siempre comprimir archivos de salida de sus tareas Mapper. El mayor beneficio es que aquí en mejoras de rendimiento, ya que al escribir archivos de salida más pequeños minimiza el costo inevitable de la transferencia de la salida del asignador de los nodos en los que los reductores están ejecutando.

Video: Fundamentals of Hadoop MapReduce

El particionador por defecto es más que suficiente en la mayoría de las situaciones, pero a veces es posible que desee personalizar la forma se divide los datos antes de que sea procesado por los reductores. Por ejemplo, quizás desee que los datos en su conjuntos de resultados ordenados por la clave y sus valores - conocido como secundario ordenar.

Para ello, puede anular la herramienta de particionado por defecto y poner en práctica su propio. Este proceso requiere un cierto cuidado, sin embargo, porque usted querrá asegurarse de que el número de registros en cada partición es uniforme. (Si uno reductor tiene que procesar muchos más datos que los otros reductores, podrás esperar a que su trabajo MapReduce para terminar mientras que el sencillo reductor con exceso de trabajo está penosamente a través de su forma desproporcionada gran conjunto de datos).

Video: Hadoop Map Reduce Development - 01 Distributed Cache Introduction

El uso de archivos intermedios de tamaño uniforme, se puede aprovechar mejor el paralelismo disponible en el procesamiento MapReduce.

Artículos Relacionados