Hadoop - Introducción
Hadoop es un marco de trabajo de código abierto de Apache escrito 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 de trabajo Hadoop funciona en un entorno que proporciona almacenamiento y computación distribuidos entre grupos de computadoras. Hadoop está diseñado para escalar de 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 capas principales, a saber:
- Capa de procesamiento / computación (MapReduce) y
- Capa de almacenamiento (sistema de archivos distribuido Hadoop).
Mapa reducido
MapReduce es un modelo de programación paralelo para escribir aplicaciones distribuidas ideado por Google para el procesamiento eficiente de grandes cantidades de datos (conjuntos de datos de varios terabytes), en grandes grupos (miles de nodos) de hardware básico de una manera confiable y tolerante a fallas. El programa MapReduce se ejecuta en Hadoop, que es un marco de código abierto Apache.
Sistema de archivos distribuido Hadoop
El sistema de archivos distribuido de Hadoop (HDFS) se basa en el sistema de archivos de Google (GFS) y proporciona un sistema de archivos distribuido que está diseñado para ejecutarse en hardware básico. Tiene muchas similitudes con los sistemas de archivos distribuidos existentes. Sin embargo, las diferencias con otros sistemas de archivos distribuidos son significativas. Es altamente tolerante a fallas 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 que tienen grandes conjuntos de datos.
Además de los dos componentes centrales mencionados anteriormente, el marco de Hadoop también incluye los siguientes dos módulos:
Hadoop Common - Estas son bibliotecas y utilidades de Java requeridas por otros módulos de Hadoop.
Hadoop YARN - Este es un marco para la programación de trabajos y la gestión de 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 unir muchas computadoras básicas con una sola CPU, como un único sistema distribuido funcional y prácticamente, las máquinas agrupadas pueden leer el conjunto de datos. en paralelo y proporcionan un rendimiento mucho mayor. Además, es más económico que un servidor de gama alta. Entonces, este es el primer factor de motivación detrás del uso de 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 de tamaño uniforme de 128M y 64M (preferiblemente 128M).
Luego, estos archivos se distribuyen en varios nodos del clúster para su posterior procesamiento.
HDFS, al estar en la parte superior del sistema de archivos local, supervisa el procesamiento.
Los bloques se replican para manejar fallas de hardware.
Comprobando que el código se haya ejecutado correctamente.
Realización de la ordenación que tiene lugar entre el mapa y reducir etapas.
Envío de los datos ordenados a una determinada computadora.
Escribir los registros de depuración para cada trabajo.
Ventajas de Hadoop
El marco Hadoop permite al usuario escribir y probar rápidamente sistemas distribuidos. Es eficiente y distribuye automáticamente los datos y el trabajo entre las máquinas y, a su vez, utiliza el paralelismo subyacente de los núcleos de la CPU.
Hadoop no depende del hardware para proporcionar tolerancia a fallas y alta disponibilidad (FTHA), sino que la biblioteca de Hadoop en sí ha sido diseñada para detectar y manejar fallas en la capa 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 además de ser de código abierto, es compatible en todas las plataformas ya que está basado en Java.