Procesamiento de datos en Hadoop: Explicación de los componentes de Hadoop [2022]
Publicado: 2021-01-03Con el crecimiento exponencial de la World Wide Web a lo largo de los años, los datos generados también crecieron exponencialmente. Esto condujo a la creación de una gran cantidad de datos y era difícil procesar y almacenar esta enorme cantidad de datos con los sistemas de bases de datos relacionales tradicionales.
Además, los datos creados no solo estaban en forma estructurada sino también en formato no estructurado como videos, imágenes, etc. Este tipo de datos no pueden ser procesados por bases de datos relacionales. Para contrarrestar estos problemas, nació Hadoop.
Antes de sumergirnos en el procesamiento de datos de Hadoop, tengamos una descripción general de Hadoop y sus componentes. Apache Hadoop es un marco que permite almacenar y procesar grandes cantidades de datos de manera rápida y eficiente. Se puede utilizar para almacenar grandes cantidades de datos estructurados y no estructurados. Obtenga más información sobre el ecosistema y los componentes de Hadoop.
Los componentes fundamentales de Hadoop son los siguientes: –
Tabla de contenido
Bloques de construcción de Hadoop
1. HDFS (La capa de almacenamiento)
Como sugiere el nombre, Hadoop Distributed File System es la capa de almacenamiento de Hadoop y se encarga de almacenar los datos en un entorno distribuido (configuración maestra y esclava). Divide los datos en varios bloques de datos y los almacena en diferentes nodos de datos. Estos bloques de datos también se replican en diferentes nodos de datos para evitar la pérdida de datos cuando uno de los nodos deja de funcionar.
Tiene dos procesos principales en ejecución para el procesamiento de los datos: –

un. NodoNombre
Se está ejecutando en la máquina maestra. Guarda las ubicaciones de todos los archivos almacenados en el sistema de archivos y rastrea dónde residen los datos en el clúster, es decir, almacena los metadatos de los archivos. Cuando las aplicaciones cliente quieren realizar ciertas operaciones sobre los datos, interactúa con el NameNode. Cuando NameNode recibe la solicitud, responde devolviendo una lista de servidores de Data Node donde residen los datos requeridos.
B. nodo de datos
Este proceso se ejecuta en cada máquina esclava. Una de sus funcionalidades es almacenar cada bloque de datos HDFS en un archivo separado en su sistema de archivos local. En otras palabras, contiene los datos reales en forma de bloques. Envía señales de latido periódicamente y espera la solicitud de NameNode para acceder a los datos.
2. MapReduce (La capa de procesamiento)
Es una técnica de programación basada en Java que se utiliza sobre el marco Hadoop para un procesamiento más rápido de grandes cantidades de datos. Procesa esta gran cantidad de datos en un entorno distribuido utilizando muchos nodos de datos, lo que permite el procesamiento paralelo y una ejecución más rápida de las operaciones con tolerancia a fallas.
Un trabajo de MapReduce divide el conjunto de datos en varios fragmentos de datos que luego se convierten en pares clave-valor para que los mapeadores los procesen. El formato sin procesar de los datos puede no ser adecuado para el procesamiento. Por lo tanto, los datos de entrada compatibles con la fase del mapa se generan utilizando la función InputSplit y RecordReader.
InputSplit es la representación lógica de los datos que debe procesar un mapeador individual. RecordReader convierte estas divisiones en registros que adoptan la forma de pares clave-valor. Básicamente convierte la representación orientada a bytes de la entrada en una representación orientada a registros.
Estos registros luego se alimentan a los mapeadores para un mayor procesamiento de los datos. Los trabajos de MapReduce constan principalmente de tres fases, a saber, la fase de mapa, la fase aleatoria y la fase de reducción.
un. Fase del mapa
Es la primera fase en el procesamiento de los datos. La tarea principal en la fase del mapa es procesar cada entrada del RecordReader y convertirla en tuplas intermedias (pares clave-valor). Los mapeadores almacenan esta salida intermedia en el disco local.
Los valores de estos pares clave-valor pueden diferir de los recibidos como entrada del RecordReader. La fase del mapa también puede contener combinadores que también se denominan reductores locales. Realizan agregaciones en los datos, pero solo dentro del alcance de un mapeador.

Como los cálculos se realizan en diferentes nodos de datos, es esencial que todos los valores asociados con la misma clave se fusionen en un solo reductor. Esta tarea la realiza el particionador. Realiza una función hash sobre estos pares clave-valor para fusionarlos.
También asegura que todas las tareas se repartan uniformemente entre los reductores. Los tabiques generalmente entran en escena cuando estamos trabajando con más de un reductor.
B. Fase de barajar y ordenar
Esta fase transfiere la salida intermedia obtenida de los mapeadores a los reductores. Este proceso se llama barajar. La salida de los mapeadores también se ordena antes de transferirla a los reductores. La clasificación se realiza sobre la base de las claves en los pares clave-valor. Ayuda a los reductores a realizar los cálculos de los datos incluso antes de que se reciban todos los datos y, finalmente, ayuda a reducir el tiempo necesario para los cálculos.
A medida que se ordenan las claves, cada vez que el reductor obtiene una clave diferente como entrada, comienza a realizar las tareas de reducción en los datos recibidos previamente.
C. Reducir Fase
La salida de la fase de mapa sirve como entrada para la fase de reducción. Toma estos pares clave-valor y les aplica la función de reducción para producir el resultado deseado. Las claves y los valores asociados con la clave se pasan a la función reduce para realizar ciertas operaciones.
Podemos filtrar los datos o combinarlos para obtener la salida agregada. Publicar la ejecución de la función reduce, puede crear cero o más pares clave-valor. Este resultado se vuelve a escribir en el sistema de archivos distribuidos de Hadoop.
3. YARN (La capa de gestión)
Yet Another Resource Navigator es el componente de gestión de recursos de Hadoop. Hay procesos en segundo plano ejecutándose en cada nodo (Administrador de nodos en las máquinas esclavas y Administrador de recursos en el nodo maestro) que se comunican entre sí para la asignación de recursos. El Administrador de recursos es la pieza central de la capa YARN que administra los recursos entre todas las aplicaciones y pasa las solicitudes al Administrador de nodos.

El administrador de nodos supervisa la utilización de recursos como la memoria, la CPU y el disco de la máquina y transmite lo mismo al administrador de recursos. Se instala en cada Nodo de Datos y es responsable de ejecutar las tareas en los Nodos de Datos.
Debe leer: Las 10 mejores herramientas de Hadoop para ingenieros de Big Data
Conclusión
El flujo de trabajo completo para el procesamiento de datos en Hadoop se puede resumir de la siguiente manera: –
- DivisiónEntrada ; divide lógicamente los datos que residen en HDFS en varios bloques de datos. La decisión sobre cómo dividir los datos la toma Inputformat .
- RecordReader convierte los datos en pares clave-valor. RecordReader convierte los datos orientados a bytes en datos orientados a registros. Estos datos sirven como entrada para el mapeador.
- El asignador, que no es más que una función definida por el usuario, procesa estos pares clave-valor y genera pares intermedios clave-valor para su posterior procesamiento.
- Estos pares son reducidos localmente (dentro del alcance de un mapeador) por los combinadores para reducir la cantidad de datos que se transferirán del mapeador al reductor.
- El particionador garantiza que todos los valores con la misma clave se fusionen en el mismo reductor y que las tareas se distribuyan uniformemente entre los reductores.
- Estos pares clave-valor intermedios luego se barajan en los reductores y se clasifican en función de las claves. Este resultado se alimenta a los reductores como entrada.
- La función de reducción agrega los valores de cada clave y el resultado se almacena nuevamente en el HDFS mediante RecordWriter. Antes de volver a escribirlo en el HDFS, el formato de salida decide el formato en el que se deben escribir los datos .
Si está interesado en saber más sobre Big Data, consulte nuestro programa PG Diploma in Software Development Specialization in Big Data, que está diseñado para profesionales que trabajan y proporciona más de 7 estudios de casos y proyectos, cubre 14 lenguajes y herramientas de programación, prácticas talleres, más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores empresas.
Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.