Hadoop – Introducción

Hadoop es una plataforma Apache de código abierto escrita en Java que permite el procesamiento distribuido de grandes conjuntos de datos en grupos de computadoras utilizando modelos de programación simples. La aplicación del marco Hadoop se ejecuta en un entorno que proporciona almacenamiento y cálculo a través de grupos de computadoras. Hadoop está diseñado para escalar desde un solo servidor a miles de máquinas, cada una de las cuales ofrece computación y almacenamiento locales.

Arquitectura Hadoop

En esencia, Hadoop tiene dos niveles principales, a saber:

  • Capa de procesamiento / computación (MapReduce) y
  • Nivel de almacenamiento (sistema de archivos distribuido Hadoop).

Arquitectura Hadoop

Mapa reducido

MapReduce es un modelo de programación paralelo para escribir aplicaciones distribuidas desarrollado por Google para procesar de manera eficiente grandes cantidades de datos (conjuntos de datos de varios terabytes) en grandes grupos (miles de nodos) de hardware estándar de una manera confiable y tolerante a fallas. MapReduce funciona con Hadoop, que es un marco Apache de código abierto.

Sistema de archivos distribuido Hadoop

El sistema de archivos distribuido de Hadoop (HDFS) se basa en el sistema de archivos de Google (GFS) y es un sistema de archivos distribuido diseñado para ejecutarse en hardware estándar. Tiene mucho en común con los sistemas de archivos distribuidos existentes. Sin embargo, las diferencias con otros sistemas de archivos distribuidos son significativas. Es muy resistente y está diseñado para implementarse en hardware de bajo costo. Proporciona acceso de alto rendimiento a los datos de la aplicación y es adecuado para aplicaciones con grandes conjuntos de datos.

Además de los dos componentes principales anteriores, el marco de Hadoop también incluye los siguientes dos módulos:

  • Hadoop común – Estas son las bibliotecas y utilidades de Java requeridas por otros módulos de Hadoop.

  • Hilado de Hadoop – Es un marco para programar trabajos y administrar recursos del clúster.

¿Cómo funciona Hadoop?

Es bastante costoso construir servidores más grandes con configuraciones pesadas que manejen el procesamiento a gran escala, pero como alternativa, puede agrupar muchas computadoras comunes con un solo procesador como un solo sistema distribuido funcional, y prácticamente las máquinas en clúster pueden leer un conjunto de datos. en paralelo y proporcionan un ancho de banda mucho mayor. Además, es más económico que un solo servidor de alto rendimiento. Entonces, este es el primer motivador para usar Hadoop, que se ejecuta en máquinas agrupadas y de bajo costo.

Hadoop ejecuta código en un grupo de computadoras. Este proceso incluye las siguientes tareas principales que realiza Hadoop:

  • Los datos se dividen inicialmente en directorios y archivos. Los archivos se dividen en bloques del mismo tamaño 128M y 64M (preferiblemente 128M).

  • Luego, estos archivos se distribuyen a varios nodos del clúster para su posterior procesamiento.

  • HDFS, al estar en la parte superior del sistema de archivos local, controla el procesamiento.

  • Los bloques se replican para la conmutación por error de hardware.

  • Comprobando la ejecución exitosa del código.

  • Realización de clasificación entre el mapa y reducción de etapas.

  • Envío de datos ordenados a una computadora específica.

  • Registro de depuración para cada trabajo.

Beneficios de Hadoop

  • El marco de Hadoop permite al usuario escribir y probar rápidamente sistemas distribuidos. Es eficiente, distribuye automáticamente los datos y el trabajo entre las máquinas y, a su vez, aprovecha el paralelismo subyacente de los núcleos de la CPU.

  • Hadoop no depende del hardware para tolerancia a fallas y alta disponibilidad (FTHA); más bien, la biblioteca de Hadoop en sí fue diseñada para detectar y manejar fallas a nivel de aplicación.

  • Los servidores se pueden agregar o eliminar del clúster de forma dinámica, y Hadoop continúa funcionando sin interrupciones.

  • Otra gran ventaja de Hadoop es que no solo es de código abierto, sino que también es compatible con todas las plataformas ya que está basado en Java.

🚫