sql >> Base de Datos >  >> NoSQL >> HBase

Diagrama de flujo de ejecución de trabajos de Hadoop MapReduce

En este Hadoop blog, le proporcionaremos un flujo de ejecución de trabajo de MapReduce de extremo a extremo. Aquí describiremos en detalle cada componente que forma parte del funcionamiento de MapReduce.

Este blog lo ayudará a responder cómo funciona Hadoop MapReduce, cómo fluyen los datos en MapReduce, cómo se ejecuta el trabajo MapReduce en Hadoop.

¿Qué es MapReduce?

Hadoop MapReduce es la capa de procesamiento de datos. Procesa la gran cantidad de datos estructurados y no estructurados almacenados en HDFS. MapReduce procesa los datos en paralelo dividiendo el trabajo en el conjunto de tareas independientes. Por lo tanto, el procesamiento en paralelo mejora la velocidad y la confiabilidad.

El procesamiento de datos de Hadoop MapReduce se lleva a cabo en 2 fases:fase Map y Reduce.

  • Fase del mapa- Es la primera fase del procesamiento de datos. En esta fase, especificamos toda la lógica compleja/reglas de negocio/código costoso.
  • Reducir fase- Es la segunda fase del procesamiento. En esta fase, especificamos un procesamiento ligero como agregación/suma.

Pasos del flujo de ejecución de tareas de MapReduce

MapReduce procesa los datos en varias fases con la ayuda de diferentes componentes. Discutamos los pasos de ejecución de trabajos en Hadoop.

1. Archivos de entrada

En los archivos de entrada se almacenan los datos para el trabajo de MapReduce. En HDFS , residen los archivos de entrada. El formato de los archivos de entrada es arbitrario. También se pueden utilizar archivos de registro basados ​​en líneas y formato binario.

2. Formato de entrada

Después de eso, InputFormat define cómo dividir y leer estos archivos de entrada. Selecciona los archivos u otros objetos para la entrada. InputFormat crea InputSplit.

3. Divisiones de entrada

Representa los datos que serán procesados ​​por un Mapeador individual . Para cada división, se crea una tarea de mapa. Por lo tanto, el número de tareas del mapa es igual al número de InputSplits. El marco divide la división en registros, que procesan el mapeador.

4. Lector de registros

Se comunica con el inputSplit. Y luego convierte los datos en pares clave-valor adecuado para la lectura por el Mapper. RecordReader usa de forma predeterminada TextInputFormat para convertir datos en un par clave-valor.

Se comunica con InputSplit hasta que finaliza la lectura del archivo. Asigna un desplazamiento de bytes a cada línea presente en el archivo. Luego, estos pares clave-valor se envían al mapeador para su posterior procesamiento.

5. Mapeador

Procesa el registro de entrada producido por RecordReader y genera pares clave-valor intermedios. La salida intermedia es completamente diferente del par de entrada. La salida del mapeador es la colección completa de pares clave-valor.

El marco Hadoop no almacena la salida del mapeador en HDFS. No se almacena, ya que los datos son temporales y escribir en HDFS creará copias múltiples innecesarias. Luego, Mapper pasa la salida al combinador para su posterior procesamiento.

4. Combinador

Combiner es un mini-reductor que realiza una agregación local en la salida del mapeador. Minimiza la transferencia de datos entre mapeador y reductor. Entonces, cuando se completa la funcionalidad del combinador, el marco pasa la salida al particionador para su posterior procesamiento.

5. Particionador

El particionador surge si estamos trabajando con más de un reductor. Toma la salida del combinador y realiza la partición.

La partición de la salida se realiza sobre la base de la clave en MapReduce. Por función hash, la clave (o un subconjunto de la clave) deriva la partición.

Sobre la base del valor clave en MapReduce, se realiza la partición de cada salida del combinador. Y luego el registro que tiene el mismo valor de clave va a la misma partición. Después de eso, cada partición se envía a un reductor.

La partición en la ejecución de MapReduce permite una distribución uniforme de la salida del mapa sobre el reductor.

6. Barajar y clasificar

Después de la partición, la salida se baraja al nodo de reducción. La mezcla es el movimiento físico de los datos que se realiza a través de la red. Mientras todos los mapeadores terminan y mezclan la salida en los nodos reductores.

Luego, el marco fusiona esta salida intermedia y la ordena. Esto luego se proporciona como entrada para reducir la fase.

7. Reductor

Reducer luego toma un conjunto de pares clave-valor intermedios producidos por los mapeadores como entrada. Después de eso, ejecuta una función reductora en cada uno de ellos para generar la salida.

La salida del reductor es la salida final. Luego, el marco almacena la salida en HDFS.

8. Grabador

Escribe estos pares clave-valor de salida desde la fase Reducer a los archivos de salida.

9. Formato de salida

OutputFormat define la forma en que RecordReader escribe estos pares clave-valor de salida en los archivos de salida. Entonces, sus instancias proporcionadas por Hadoop escriben archivos en HDFS. Por lo tanto, las instancias de OutputFormat escriben la salida final de reducer en HDFS.

Conclusión

Hemos aprendido paso a paso el flujo de ejecución de trabajos de MapReduce. Espero que este blog te ayude mucho a entender el funcionamiento de MapReduce.

Si aún tiene alguna consulta relacionada con el flujo de ejecución del trabajo de MapReduce, puede compartirla con nosotros en la sección de comentarios que se encuentra a continuación. Haremos todo lo posible para resolverlos.