Map-Reduce es un marco de procesamiento utilizado para procesar datos en una gran cantidad de máquinas. Hadoop usa Map-Reduce para procesar los datos distribuidos en un clúster de Hadoop. Map-Reduce no es similar a otros marcos de procesamiento regulares como Hibernate, JDK , .NET, etc. Todos estos marcos anteriores están diseñados para usarse con un sistema tradicional donde los datos se almacenan en una sola ubicación como Network File System, base de datos Oracle , etc . Pero cuando estamos procesando big data , los datos se ubican en múltiples máquinas de productos básicos con la ayuda de HDFS .
Entonces, cuando los datos se almacenan en múltiples Nodes, necesitamos un marco de procesamiento donde pueda copiar el programa en la ubicación donde están presentes los datos, lo que significa que copia el programa en todas las máquinas donde están presentes los datos. Aquí Map-Reduce entró en escena para procesar los datos en Hadoop en un sistema distribuido. Hadoop tiene un gran inconveniente en el tráfico de red entre conmutadores que se debe al enorme volumen de datos. Map-Reduce viene con una función llamada Data-Locality . La localidad de datos es el potencial para acercar los cálculos a la ubicación real de los datos en las máquinas.
Dado que Hadoop está diseñado para funcionar en hardware básico, utiliza Map-Reduce, ya que es ampliamente aceptable, lo que proporciona una manera fácil de procesar datos en múltiples Nodes. Map-Reduce no es el único marco para el procesamiento paralelo. Hoy en día, Spark también es un marco popular utilizado para computación distribuida como Map-Reduce. También tenemos HAMA, las tesis MPI también son el marco de procesamiento distribuido diferente-diferente.
Entendamos el flujo de datos en Map-Reduce
Map Reduce es una terminología que viene con Map Phase y Reducer Phase . El mapa se utiliza para la transformación, mientras que el reductor se utiliza para el tipo de operación de agregación. La terminología para Map y Reduce se deriva de algunos lenguajes de programación funcionales como Lisp, Scala , etc. El programa marco de procesamiento de Map-Reduce viene con 3 componentes principales, es decir, nuestro código de controlador , Mapper (para transformación) y Reducer (para agregación).
Tomemos un ejemplo en el que tiene un archivo de 10 TB de tamaño para procesar en Hadoop. Primero, los 10 TB de datos se distribuyen en múltiples Nodes en Hadoop con HDFS. Ahora tenemos que procesarlo para eso tenemos un marco Map-Reduce. Entonces, para procesar estos datos con Map-Reduce, tenemos un código de controlador que se llama Trabajo . Si usamos el lenguaje de programación Java para procesar los datos en HDFS, entonces debemos iniciar esta clase de controlador con el objeto Trabajo. Supongamos que tiene un automóvil que es su marco y que el botón de inicio que se usa para encender el automóvil es similar a este código de controlador en el marco Map-Reduce. Necesitamos iniciar el código del controlador para utilizar las ventajas de este marco Map-Reduce.
También hay clases Mapper y Reducer proporcionadas por este marco que están predefinidas y modificadas por los desarrolladores según los requisitos de las organizaciones.
Breve funcionamiento de Mapper
Mapper es la línea de código inicial que inicialmente interactúa con el conjunto de datos de entrada. supongamos, si tenemos 100 bloques de datos del conjunto de datos que estamos analizando, entonces, en ese caso, habrá 100 programas o procesos Mapper que se ejecutan en paralelo en máquinas (Nodes) y producen su propia salida conocida como salida intermedia que luego es almacenado en el disco local, no en HDFS. La salida del mapeador actúa como entrada para Reducer, que realiza alguna operación de clasificación y agregación de datos y produce la salida final.
Breve funcionamiento del reductor
Reducer es la segunda parte del modelo de programación Map-Reduce. Mapper produce la salida en forma de pares clave-valor que funcionan como entrada para Reducer. Pero antes de enviar estos pares clave-valor intermedios directamente al Reductor, se realizará un proceso que barajará y ordenará los pares clave-valor de acuerdo con sus valores clave. La salida generada por Reducer será la salida final que luego se almacena en HDFS (Sistema de archivos distribuidos de Hadoop). Reducer realiza principalmente algunas operaciones de cálculo como suma, filtración y agregación.
Pasos del flujo de datos:
- A la vez se procesa una división de entrada única. El desarrollador anula Mapper de acuerdo con la lógica comercial y este Mapper se ejecuta de manera paralela en todas las máquinas de nuestro clúster.
- La salida intermedia generada por Mapper se almacena en el disco local y se baraja al reductor para reducir la tarea.
- Una vez que Mapper termina su tarea, la salida se ordena, fusiona y proporciona a Reducer.
- Reducer realiza algunas tareas de reducción, como la agregación y otras operaciones de composición, y el resultado final se almacena en HDFS en el archivo part-r-00000 (creado de forma predeterminada).
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA