Introducción al ecosistema de Hadoop

Apache Hadoop es un sistema de código abierto para almacenar y procesar de manera confiable mucha información en muchas computadoras básicas. Hadoop se escribió por primera vez en un artículo y se publicó en octubre de 2013 como 'Sistema de archivos de Google'. Doug Cutting, que trabajaba en Yahoo en ese momento, introdujo el nombre como Hadoop Ecosystem basado en el nombre del elefante de juguete de su hijo. Si consideramos el núcleo principal de Apache Hadoop, en primer lugar puede considerar la parte de almacenamiento, que se conoce como Sistema de archivos distribuidos de Hadoop (HDFS), y en segundo lugar la parte de procesamiento, que se conoce como módulo de Programación de reducción de mapas. Hadoop en realidad divide un archivo enorme y los almacena en múltiples nodos en todo el clúster.

El concepto de ecosistema Hadoop

El framework Apache Hadoop tiene principalmente los siguientes módulos:

  1. Hadoop Common: contiene todas las bibliotecas y utilidades necesarias para usar el módulo Hadoop.
  2. Sistema de archivos distribuidos de Hadoop (HDFS): es uno de los sistemas de archivos distribuidos que ayuda a almacenar grandes cantidades de datos en máquinas múltiples o básicas. Además, proporciona una gran utilidad en caso de ancho de banda, normalmente proporciona un ancho de banda muy alto en un tipo de agregado en un clúster.
  3. Hadoop Yarn: Se introdujo en 2012. Se introduce principalmente en la gestión de recursos en todo el sistema en productos básicos, incluso en un clúster. Según la capacidad de los recursos, distribuyó o programó la aplicación del usuario según los requisitos.
  4. Hadoop MapReduce: ayuda principalmente a procesar datos a gran escala mediante la metodología de programación de reducción de mapas.

Apache Hadoop siempre ayuda a reducir los costos de TI en términos de procesamiento y almacenamiento de grandes datos de manera inteligente. Como Apache Hadoop es de código abierto y el hardware está disponible comúnmente, siempre nos ayuda a manejar una reducción adecuada en el costo de TI.

Software de código abierto + hardware básico = reducción de costos de TI

Por ejemplo, si vamos a considerar la recepción diaria de 942787 archivos y directorios, que requieren 4077936 bloques, totalice 5020723 bloques. Entonces, si configuramos al menos 1.46 PB de capacidad, entonces para manejar la carga anterior, el sistema de archivos distribuido usará 1.09 PB, eso significa casi el 74.85% de la capacidad total configurada, mientras que consideramos 178 nodos vivos y 24 nodos muertos.

El ecosistema de Hadoop está diseñado principalmente para almacenar y procesar grandes datos, que normalmente tienen algunas características clave como las siguientes:

  • Volumen

El volumen representa el tamaño de los datos que realmente se almacenaron y generaron. Depende del tamaño de los datos, se ha determinado que el conjunto de datos es big data o no.

  • Variedad

La variedad representa la naturaleza, la estructura y el tipo de datos que se utilizan.

  • Velocidad

La velocidad representa la velocidad de los datos que se han almacenado y generado en un flujo de proceso de desarrollo particular.

  • Veracidad

Veracidad significa la calidad de los datos que se han capturado y también ayuda al análisis de datos a alcanzar el objetivo previsto.

HDFS está diseñado principalmente para almacenar una gran cantidad de información (terabytes o petabytes) en una gran cantidad de máquinas en un clúster. Siempre manteniendo algunas características comunes, como la confiabilidad de los datos, se ejecuta en hardware básico, utilizando bloques para almacenar un archivo o parte de ese archivo, utiliza el modelo 'escribir una vez que leer muchos'.

HDFS siguiendo la arquitectura a continuación con el concepto de nodo de nombre y nodo de datos.

La responsabilidad del Nodo de Nombre (Maestro):

- gestiona el espacio de nombres del sistema de archivos

- mantiene la configuración del clúster

- Responsable de la gestión de replicación

La responsabilidad del nodo de datos (esclavos):

- Almacenar datos en el sistema de archivos local

- Informe periódicamente al nodo de nombre mediante latidos

Operación de escritura HDFS:

Hadoop sigue los pasos a continuación para escribir cualquier archivo grande:

  1. Cree un archivo y actualice la imagen FS después de obtener una solicitud de escritura de archivo de cualquier cliente HDFS.
  2. Obtenga información de detalles de ubicación de bloque o nodo de datos del nodo de nombre.
  3. Escriba el paquete en un nodo de datos individual de forma paralela.
  4. Confirme la finalización o la aceptación de la escritura de paquetes y envíe información al cliente de Hadoop.

Canal de replicación de bloques HDFS:

  1. El cliente recupera una lista de Datanodes del Namenode que alojará una réplica de ese bloque
  2. El cliente luego descarga el bloque de datos al primer Datanode
  3. El primer Datanode recibe un bloque, lo escribe y lo transfiere al siguiente nodo de datos en la tubería
  4. Cuando se escriben todas las réplicas, el Cliente pasa al siguiente bloque del archivo

HDFS Fault Tolerance:

Un nodo de datos se ha caído repentinamente, en ese caso, HDFS tiene la capacidad de administrar ese escenario automáticamente. Primero, todos los nodos de nombre siempre reciben un latido de cada nodo de datos, si de alguna manera pierde un latido de un nodo de datos, considerando el mismo nodo de datos como inactivo, tome medidas de inmediato para replicar automáticamente todos los bloques en los nodos restantes inmediatamente para satisfacer la replicación factor.

Si el nodo de nombre detecta un nuevo nodo de datos disponible en el clúster, reequilibra inmediatamente todos los bloques, incluido el nodo de datos agregado.

Ahora, de alguna manera, la pérdida del nodo de nombre o el error, en ese caso, el nodo de respaldo que contiene una imagen FS del nodo de nombre reproduce de inmediato toda la operación de FS y sube el nodo de nombre según el requisito. Pero en ese caso se requiere intervención manual, y todo el marco del ecosistema Hadoop estará inactivo un par de veces para configurar un nuevo nodo de nombre nuevamente. Entonces, en este caso, el nodo de nombre puede ser una falla de un solo punto, para evitar este escenario, la Federación HDFS introduce múltiples grupos de configuración de nodo de nombre, y ZooKeeper puede administrar inmediatamente un nodo de nombre alternativo según los requisitos.

Ejemplos de ecosistema de Hadoop

El ejemplo completo del ecosistema Hadoop puede explicarse adecuadamente en la figura siguiente:

Los datos pueden provenir de cualquier tipo de fuente, como Data Warehouse, Depósito de documentos gestionados, Recursos compartidos de archivos, Basada en datos RDMS normales, o fuentes en la nube o externas. Todos esos datos llegaron a HDFS en forma estructurada o no estructurada o semiestructurada. HDFS almacena todos esos datos de forma distribuida, lo que significa almacenarlos en un sistema de productos distribuidos de manera muy inteligente.

Conclusión

El ecosistema de Hadoop está diseñado principalmente para almacenar y procesar grandes datos que deberían haber presentado cualquiera de los dos factores entre volumen, velocidad y variedad. Almacena datos en un sistema de procesamiento distribuido que se ejecuta en hardware básico. Considerando el proceso completo del ecosistema Hadoop, HDFS distribuye los bloques de datos y Map Reduce proporciona el marco de programación para leer datos de un archivo almacenado en HDFS.

Artículos recomendados:

Esta ha sido una guía para el ecosistema Hadoop. Aquí hemos discutido el concepto básico sobre Hadoop Ecosystem, su arquitectura, operaciones HDFS, ejemplos, tolerancia a fallas HDFS, etc. También puede consultar los siguientes artículos para obtener más información:

  1. Usos de Hadoop en el mundo real
  2. Hadoop vs Splunk
  3. Carrera profesional en Hadoop
  4. Rendimiento Hadoop vs SQL

Categoría: