¿Qué es Hadoop? Introducción, Arquitectura, Ecosistema, Componentes

¿Qué es Hadoop?

Apache Hadoop es un marco de software de código abierto que se utiliza para desarrollar aplicaciones de procesamiento de datos que se ejecutan en un entorno informático distribuido.

Las aplicaciones creadas con HADOOP se ejecutan en grandes conjuntos de datos distribuidos en grupos de computadoras básicas. Los ordenadores básicos son baratos y están ampliamente disponibles. Estos son principalmente útiles para lograr una mayor potencia computacional a bajo costo.

De manera similar a los datos que residen en un sistema de archivos local de un sistema de computadora personal, en Hadoop, los datos residen en un sistema de archivos distribuido que se denomina sistema de archivos distribuidos de Hadoop . El modelo de procesamiento se basa en el concepto de 'Localidad de datos' en el que la lógica computacional se envía a los nodos del clúster (servidor) que contienen datos. Esta lógica computacional no es más que una versión compilada de un programa escrito en un lenguaje de alto nivel como Java. Un programa de este tipo procesa los datos almacenados en Hadoop HDFS.

¿Lo sabías? El grupo de computadoras consta de un conjunto de múltiples unidades de procesamiento (disco de almacenamiento + procesador) que están conectadas entre sí y actúan como un solo sistema.

En este tutorial, aprenderá,

  • Hadoop EcoSystem y componentes
  • Arquitectura Hadoop
  • Características de 'Hadoop'
  • Topología de red en Hadoop

Hadoop EcoSystem y componentes

El siguiente diagrama muestra varios componentes en el ecosistema de Hadoop:

Apache Hadoop consta de dos subproyectos:

  1. Hadoop MapReduce: MapReduce es un modelo computacional y un marco de software para escribir aplicaciones que se ejecutan en Hadoop. Estos programas MapReduce son capaces de procesar enormes datos en paralelo en grandes grupos de nodos de computación.
  2. HDFS ( Hadoop Distributed File System ): HDFS se encarga de la parte de almacenamiento de las aplicaciones Hadoop. Las aplicaciones MapReduce consumen datos de HDFS. HDFS crea varias réplicas de bloques de datos y las distribuye en los nodos informáticos de un clúster. Esta distribución permite cálculos fiables y extremadamente rápidos.

Aunque Hadoop es mejor conocido por MapReduce y su sistema de archivos distribuido, HDFS, el término también se usa para una familia de proyectos relacionados que caen bajo el paraguas de la computación distribuida y el procesamiento de datos a gran escala. Otros proyectos relacionados con Hadoop en Apache incluyen Hive, HBase, Mahout, Sqoop, Flume y ZooKeeper.

Arquitectura Hadoop

Arquitectura Hadoop de alto nivel

Hadoop tiene una arquitectura maestro-esclavo para el almacenamiento de datos y el procesamiento de datos distribuidos mediante los métodos MapReduce y HDFS.

NameNode:

NameNode representó todos los archivos y directorios que se utilizan en el espacio de nombres

DataNode:

DataNode le ayuda a administrar el estado de un nodo HDFS y le permite interactuar con los bloques

MasterNode:

El nodo maestro le permite realizar un procesamiento paralelo de datos utilizando Hadoop MapReduce.

Nodo esclavo:

Los nodos esclavos son las máquinas adicionales en el clúster de Hadoop que le permiten almacenar datos para realizar cálculos complejos. Además, todo el nodo esclavo viene con Task Tracker y un DataNode. Esto le permite sincronizar los procesos con NameNode y Job Tracker respectivamente.

En Hadoop, el sistema maestro o esclavo se puede configurar en la nube o en las instalaciones

Características de 'Hadoop'

• Adecuado para análisis de macrodatos

Dado que Big Data tiende a ser distribuido y desestructurado por naturaleza, los clústeres HADOOP son los más adecuados para el análisis de Big Data. Dado que es la lógica de procesamiento (no los datos reales) la que fluye hacia los nodos de computación, se consume menos ancho de banda de la red. Este concepto se denomina concepto de localidad de datos que ayuda a aumentar la eficiencia de las aplicaciones basadas en Hadoop.

• escalabilidad

Los clústeres de HADOOP se pueden escalar fácilmente en cualquier medida agregando nodos de clúster adicionales y, por lo tanto, permite el crecimiento de Big Data. Además, el escalado no requiere modificaciones en la lógica de la aplicación.

• Tolerancia a fallos

El ecosistema HADOOP tiene una disposición para replicar los datos de entrada en otros nodos del clúster. De esa manera, en el caso de que se produzca una falla en el nodo del clúster, el procesamiento de datos aún puede continuar utilizando los datos almacenados en otro nodo del clúster.

Topología de red en Hadoop

La topología (disposición) de la red afecta el rendimiento del clúster de Hadoop cuando crece el tamaño del clúster de Hadoop. Además del rendimiento, también es necesario preocuparse por la alta disponibilidad y el manejo de fallas. Para lograr este Hadoop, la formación de clústeres hace uso de la topología de red.

Normalmente, el ancho de banda de la red es un factor importante a considerar al formar una red. Sin embargo, como medir el ancho de banda podría ser difícil, en Hadoop, una red se representa como un árbol y la distancia entre los nodos de este árbol (número de saltos) se considera un factor importante en la formación del clúster de Hadoop. Aquí, la distancia entre dos nodos es igual a la suma de su distancia a su ancestro común más cercano.

El clúster de Hadoop consta de un centro de datos, el bastidor y el nodo que realmente ejecuta los trabajos. Aquí, el centro de datos consta de racks y el rack consta de nodos. El ancho de banda de la red disponible para los procesos varía según la ubicación de los procesos. Es decir, el ancho de banda disponible disminuye a medida que nos alejamos de

  • Procesos en el mismo nodo
  • Diferentes nodos en el mismo rack
  • Nodos en diferentes racks del mismo centro de datos
  • Nodos en diferentes centros de datos

Articulos interesantes...