Introducción a los componentes de Hadoop

Los componentes de Hadoop son principalmente HDFS, Map Reduce, Yarn. Hoy vivimos en una era digital donde la tasa de producción de datos es muy alta aproximadamente estamos produciendo 2.5 quintillones de datos por día. Aunque la capacidad de almacenamiento de los discos está aumentando, la tasa de búsqueda no ha aumentado para este volumen de datos. Para superar esto, necesitamos leer los datos en paralelo, para lograr esto en Hadoop tenemos un HDFS (Sistema de archivos distribuidos de Hadoop) donde los conjuntos de datos se almacenan como bloques en HDFS (para más detalles, consulte la sección HDFS) para leer datos en paralelo y lograr mayor tasa de procesamiento. El procesamiento de datos se realiza para obtener o pronosticar información significativa o para obtener algunas tendencias o patrones. El proceso MapReduce se utiliza para efectuar para obtener la información deseada. Map y Reduce son las dos fases diferentes de procesamiento de datos.

Componentes principales de Hadoop

Los principales componentes de Hadoop se describen a continuación:

1. Sistema de archivos distribuidos de Hadoop (HDFS)

HDFS es la capa de almacenamiento para Big Data, es un grupo de muchas máquinas, los datos almacenados se pueden usar para el procesamiento con Hadoop. Una vez que los datos se envían a HDFS, podemos procesarlos en cualquier momento, hasta el momento en que procesamos los datos residirán en HDFS hasta que eliminemos los archivos manualmente. HDFS almacena los datos como un bloque, el tamaño mínimo del bloque es de 128 MB en Hadoop 2.xy 1.x era de 64 MB. HDFS replica los bloques de los datos disponibles si los datos se almacenan en una máquina y si la máquina falla, los datos no se pierden, pero para evitarlos, los datos se replican en diferentes máquinas. El factor de replicación por defecto es 3 y podemos cambiar en HDFS-site.xml o usando el comando Hadoop fs -strep -w 3 / dir replicando que tenemos los bloques en diferentes máquinas para alta disponibilidad.
HDFS es una arquitectura maestro-esclavo, es NameNode como maestro y Data Node como esclavo. NameNode es la máquina donde se almacenan todos los metadatos de todos los bloques almacenados en el DataNode.

2. HILO

YARN se introdujo en Hadoop 2.x, antes de que Hadoop tuviera un JobTracker para la gestión de recursos. Job Tracker era el maestro y tenía un Task Tracker como esclavo. Job Tracker era el que solía encargarse de programar los trabajos y asignar recursos. El Rastreador de tareas solía ocuparse de las tareas de Mapa y Reducir y el estado se actualizaba periódicamente en Rastreador de trabajos. Con es un tipo de administrador de recursos tenía un límite de escalabilidad y la ejecución concurrente de las tareas también tenía una limitación. Estos problemas se abordaron en YARN y se ocupó de la asignación de recursos y la programación de trabajos en un clúster. Ejecutar un mapa Reducir el trabajo necesita recursos en un clúster, para obtener los recursos asignados para el trabajo YARN ayuda. YARN determina qué trabajo se realiza y qué máquina se realiza. Tiene toda la información de núcleos y memoria disponibles en el clúster, rastrea el consumo de memoria en el clúster. Interactúa con NameNode sobre los datos donde reside para tomar la decisión sobre la asignación de recursos.

3. MapReduce

El ecosistema de Hadoop es una forma rentable, escalable y flexible de trabajar con conjuntos de datos tan grandes. Hadoop es un marco que utiliza un modelo de programación particular, llamado MapReduce, para dividir las tareas de computación en bloques que se pueden distribuir alrededor de un grupo de máquinas que utilizan el Sistema de archivos distribuidos de Hadoop (HDFS).

MapReduce es dos tareas diferentes: Mapa y Reducir, Mapa precede a la fase de reducción. Como su nombre lo indica, la fase Map asigna los datos en pares clave-valor, como todos sabemos, Hadoop utiliza valores clave para el procesamiento. La fase reductora es la fase en la que tenemos que implementar la lógica real. Además de estas dos fases, también implementa la fase aleatoria y de clasificación.

1. Mapper

Mapper es la clase donde el archivo de entrada se convierte en pares de claves y valores para su posterior procesamiento. Mientras lee los datos, se lee en valores clave solo donde la clave es el desplazamiento de bits y el valor es el registro completo.

Por ejemplo, tenemos un archivo Diary.txt en el que tenemos dos líneas escritas, es decir, dos registros.

Este es un día maravilloso que deberíamos disfrutar aquí, las compensaciones para 't' es 0 y para 'w' es 33 (los espacios en blanco también se consideran un carácter), por lo que el asignador leerá los datos como un par clave-valor, como (clave, valor), (0, este es un día maravilloso), (33, deberíamos disfrutar)

2. Reductor

Reductor es la clase que acepta claves y valores de la salida de la fase de los mapeadores. Las claves y los valores generados por el mapeador se aceptan como entrada en el reductor para su posterior procesamiento. Reducer acepta datos de múltiples mapeadores. Reductor agrega esos datos intermedios a un número reducido de claves y valores, que es el resultado final, lo veremos en el ejemplo.

3. Conductor

Además de la clase mapper y reductor, necesitamos una clase más que sea la clase Driver. Este código es necesario para MapReduce ya que es el puente entre el marco y la lógica implementada. Especifica la configuración, la ruta de datos de entrada, la ruta de almacenamiento de salida y, lo que es más importante, qué clases de mapeador y reductor deben implementarse; también se establecen muchas otras configuraciones en esta clase. por ejemplo, en la clase de controlador, podemos especificar el separador para el archivo de salida como se muestra en la clase de controlador del ejemplo a continuación.

Ejemplo

Considere que tenemos un conjunto de datos de agencia de viajes, ahora necesitamos calcular a partir de los datos cuántas personas eligen viajar a un destino en particular. Para lograr esto, necesitaremos tomar el destino como clave y para el conteo, tomaremos el valor como 1. Entonces, en la fase del mapeador, asignaremos el destino al valor 1. Ahora en la fase de barajar y ordenar después del mapeador, asignará todos los valores a una clave particular. Por ejemplo, si tenemos un destino como MAA, hemos mapeado 1 y también tenemos 2 ocurrencias después de barajar y ordenar, obtendremos MAA, (1, 1) donde (1, 1) es el valor. Ahora en la fase reductora, ya tenemos una lógica implementada en la fase reductora para agregar los valores para obtener el recuento total del boleto reservado para el destino. Este es el flujo de MapReduce.

A continuación se muestra la captura de pantalla del programa implementado para el ejemplo anterior.

1. Clase de conductor

2. Clase Mapper

3. Clase reductora

Ejecutando el Hadoop

Para la ejecución de Hadoop, primero necesitamos construir el jar y luego podemos ejecutar usando el siguiente comando Hadoop jar eample.jar /input.txt /output.txt

Conclusión

Aquí hemos discutido los componentes principales de Hadoop como HDFS, Map Reduce y YARN. Es un marco informático de clúster distribuido que ayuda a almacenar y procesar los datos y hacer el análisis requerido en los datos capturados. Hadoop es flexible, confiable en términos de datos, ya que los datos se replican y son escalables, es decir, podemos agregar más máquinas al clúster para almacenar y procesar datos.

Artículos recomendados

Esta ha sido una guía para los componentes de Hadoop. Aquí discutimos los componentes principales de Hadoop con ejemplos. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Introducción a la arquitectura JDBC
  2. ¿Qué es el clúster de Hadoop?
  3. ¿Qué es MapReduce en Hadoop?
  4. ¿Qué es Big Data y Hadoop?
  5. Comandos Hadoop fs

Categoría: