sql >> Base de Datos >  >> NoSQL >> HBase

Cómo funciona Hadoop:comprender el funcionamiento de Hadoop

¿Quiere saber cómo Hadoop realmente almacena y procesa grandes cantidades de datos?

En este artículo, estudiaremos cómo funciona internamente Hadoop. Veremos cómo Hadoop almacena y procesa grandes conjuntos de datos. El artículo explica en detalle cómo funciona Hadoop. El artículo primero ofrece una breve introducción a Hadoop.

Luego veremos los componentes principales de Hadoop y los demonios que se ejecutan en el clúster de Hadoop. Luego, el artículo explica el funcionamiento de Hadoop y abarca todos sus componentes principales, como HDFS, MapReduce e YARN.

Así que veamos primero la breve introducción a Hadoop.

Introducción a Hadoop

Con el aumento de Big Data, Apache Software Foundation en 2008 desarrolló un marco de código abierto conocido como Apache Hadoop, que es una solución a todos los problemas de Big Data.

Apache Hadoop es un marco que puede almacenar y procesar grandes cantidades de datos no estructurados que varían en tamaño desde terabytes hasta petabytes. Es un sistema altamente tolerante a fallas y altamente disponible.

Hadoop almacena una gran cantidad de datos de forma distribuida en HDFS. Hadoop MapReduce es la unidad de procesamiento en Hadoop, que procesa los datos en paralelo.

Hadoop YARN es otro componente central en el marco Hadoop, que es responsable de administrar los recursos entre las aplicaciones que se ejecutan en el clúster y programar la tarea.

Antes de estudiar cómo funciona internamente Hadoop, primero veamos los principales componentes y demonios de Hadoop.

Componentes y Demonios de Hadoop

Hadoop consta de tres componentes principales que son HDFS, MapReduce y YARN.

1. HDFS de Hadoop

Es la capa de almacenamiento de Hadoop. El sistema de archivos distribuido de Hadoop almacena datos en varios nodos en un clúster. Divide los datos en bloques y los almacena en diferentes nodos. El tamaño del bloque es de 128 MB por defecto . Podemos configurar el tamaño del bloque según nuestros requisitos.

2. Hadoop MapReducir

Es la capa de procesamiento en Hadoop. Hadoop MapReduce procesa los datos almacenados en Hadoop HDFS en paralelo en varios nodos del clúster. Divide la tarea enviada por el usuario en tareas independientes y las procesa como subtareas en el hardware básico.

3. HILO de Hadoop

Es la capa de gestión de recursos y procesos de Hadoop. YARN es responsable de compartir recursos entre las aplicaciones que se ejecutan en el clúster y programar la tarea en el clúster.

Estos son los tres componentes principales de Hadoop.

Daemons que se ejecutan en Hadoop Cluster

Hay algunos Daemons que se ejecutan en Hadoop Cluster. Los demonios son procesos ligeros que se ejecutan en segundo plano.

Algunos Daemons se ejecutan en el nodo Maestro y otros en el nodo Esclavo. Estudiemos ahora los Hadoop Daemons.

Los principales demonios de Hadoop son:

1. Maestros Demonios

  • NombreNodo: Es el demonio maestro en Hadoop HDFS. Mantiene el espacio de nombres del sistema de archivos. Almacena metadatos sobre cada bloque de los archivos.
  • Administrador de recursos: Es el demonio maestro de YARN. Arbitra los recursos entre todas las aplicaciones que se ejecutan en el clúster.

2. Demonios esclavos

  • Nodo de datos: DataNode es el demonio esclavo de Hadoop HDFS. Se ejecuta en máquinas esclavas. Almacena datos o bloques reales.
  • Administrador de nodos: Es el demonio esclavo de YARN. Se ocupa de todos los nodos informáticos individuales del clúster.

¿Cómo funciona Hadoop?

Hadoop almacena y procesa los datos de manera distribuida en el clúster de hardware básico. Para almacenar y procesar cualquier dato, el cliente envía los datos y el programa al clúster de Hadoop.

Hadoop HDFS almacena los datos, MapReduce procesa los datos almacenados en HDFS e YARN divide las tareas y asigna los recursos.

Veamos ahora estos componentes en detalle.

1. HDFS

Los datos en Hadoop se almacenan en el sistema de archivos distribuidos de Hadoop. Hay dos demonios que se ejecutan en Hadoop HDFS que son NameNode y DataNode.

a. NodoNombre

NameNode es el demonio maestro en HDFS. Se ejecuta en los nodos maestros. Mantiene el espacio de nombres del sistema de archivos. NameNode no almacena los datos reales. Almacena los metadatos, como información sobre bloques de archivos, permisos de archivos, ubicaciones de bloques, etc.

NameNode gestiona el DataNode y les proporciona instrucciones. NameNode recibe un latido del corazón de DataNodes cada 3 segundos, lo que especifica que DataNode está activo.

b. Nodo de datos

DataNode es el demonio esclavo en HDFS. DataNodes son los nodos esclavos que almacenan los datos comerciales reales. Son responsables de atender las solicitudes de lectura/escritura del cliente según las instrucciones de NameNode. Los DataNodes envían mensajes de latidos al NameNode para asegurarse de que están activos.

c. Nodo de nombre secundario

Es otro demonio en Hadoop HDFS. Es el nodo auxiliar del NameNode principal. El NameNode secundario descarga los registros de edición y el archivo Fsimage del NameNode principal y periódicamente aplica los registros de edición a Fsimage. .

Luego, envía el archivo Fsimage actualizado al NameNode. Por lo tanto, si el NameNode principal falla, la última Fsimage guardada en el NameNode secundario se usa para recuperar los metadatos del sistema de archivos.

Cada vez que el cliente desea leer o escribir datos en Hadoop HDFS, primero interactúa con NameNode. NameNode primero verifica los privilegios del cliente y, si el cliente tiene suficientes privilegios, NameNode proporciona la dirección de los DataNodes desde donde el cliente puede leer o escribir datos.

El archivo del cliente en HDFS se divide en bloques. El tamaño del bloque es de 128 MB por defecto. DataNode almacena los bloques de archivos. Para proporcionar tolerancia a fallas, HDFS crea réplicas de bloques según el factor de replicación.

El factor de replicación predeterminado es 3, lo que significa que se almacenan 3 copias de un bloque en HDFS. HDFS almacena réplicas del bloque en diferentes DataNodes siguiendo el algoritmo Rack Awareness.

Durante la lectura del archivo, si algún DataNode deja de funcionar, NameNode proporciona la dirección de otro DataNode que contiene una réplica del bloque desde donde el cliente puede leer sus datos sin tiempo de inactividad.

2. MapaReducir

MapReduce es la capa de procesamiento en Hadoop. Procesa los datos en paralelo en varias máquinas del clúster. Funciona dividiendo la tarea en subtareas independientes y las ejecuta en paralelo en varios DataNodes.

MapReduce procesa los datos en dos fases, es decir, la fase de mapa y la fase Reducir . La entrada y la salida de ambas fases son los pares clave, valor. El programador especifica el tipo de pares clave-valor a través de la clase InputFormat . De forma predeterminada, se utiliza el formato de entrada de texto.

El programador especifica las dos funciones, es decir, función de mapa y la función de reducción . En la función de mapa, el programador escribe la lógica comercial para procesar los datos.

En la función Reducir, el programador escribe la lógica para resumir y agregar la salida intermedia de la función de mapa y genera la salida.

Funcionamiento de Hadoop MapReduce

Cada vez que el cliente desea realizar algún procesamiento en sus datos en el clúster de Hadoop, primero almacena los datos en Hadoop HDFS y luego escribe el programa MapReduce para procesar los datos. Hadoop MapReduce funciona de la siguiente manera:

1. Hadoop divide el trabajo en tareas de dos tipos, es decir, asigna tareas y reduce tareas. YARN programó estas tareas (que veremos más adelante en este artículo). Estas tareas se ejecutan en diferentes DataNodes.

2. La entrada del trabajo de MapReduce se divide en partes de tamaño fijo denominadas divisiones de entrada.

3. Para cada división de entrada se crea una tarea de mapa que ejecuta una función de mapa definida por el usuario para cada registro en la división de entrada. Estas tareas de mapa se ejecutan en los DataNodes donde residen los datos de entrada.

4. La salida de la tarea del mapa es una salida intermedia y se escribe en el disco local.

5. Los resultados intermedios de las tareas del mapa se barajan y ordenan y luego se pasan al reductor.

6. Para una sola tarea de reducción, la salida intermedia ordenada del asignador se pasa al nodo donde se ejecuta la tarea de reducción. Estas salidas luego se fusionan y luego se pasan a la función de reducción definida por el usuario.

7. La función reduce resume la salida del mapeador y genera la salida. La salida del reductor se almacena en HDFS.

8. Para múltiples funciones de reducción, el usuario especifica el número de reductores. Cuando hay múltiples tareas de reducción, las tareas del mapa dividen su salida, creando una partición para cada tarea de reducción.

HILO

YARN es la capa de gestión de recursos en Hadoop. Programa la tarea en el clúster de Hadoop y asigna recursos a las aplicaciones que se ejecutan en el clúster. Es responsable de proporcionar los recursos computacionales necesarios para la ejecución de las aplicaciones.

Hay dos demonios de YARN que se ejecutan en el clúster de Hadoop para brindar servicios básicos de YARN. Ellos son:

a. Administrador de recursos

Es el demonio maestro de YARN. Se ejecuta en el nodo maestro por clúster para administrar los recursos en todo el clúster. ResourceManager tiene dos componentes principales que son Scheduler y Administrador de aplicaciones.

El planificador asigna recursos a varias aplicaciones que se ejecutan en el clúster.

ApplicationManager toma el trabajo enviado por el cliente y negocia el contenedor para ejecutar el ApplicationMaster específico de la aplicación y reinicia el contenedor ApplicationMaster en caso de falla.

b. Administrador de nodos

NodeManager son los demonios esclavos de YARN. Se ejecuta en todos los nodos esclavos del clúster. Es responsable de lanzar y administrar los contenedores en los nodos. Los contenedores ejecutan los procesos específicos de la aplicación con un conjunto limitado de recursos, como memoria, CPU, etc.

Cuando se inicia NodeManager, se anuncia a sí mismo en ResourceManager. Envía periódicamente un latido al ResourceManager. Ofrece recursos al clúster.

c. Maestro de aplicaciones

El ApplicationMaster por aplicación negocia los contenedores desde los planificadores, realiza un seguimiento del estado del contenedor y supervisa el progreso del contenedor.

Un cliente envía una aplicación al ResourceManager. El ResourceManager se comunica con el NodeManager que inicia y supervisa los contenedores informáticos en los nodos del clúster. El contenedor ejecuta ApplicationMaster.

La tarea MapReduce y ApplicationMaster se ejecutan en contenedores programados por ResourceManager y administrados por NodeManagers.

Resumamos ahora cómo funciona internamente Hadoop:

1. HDFS divide los datos de entrada del cliente en bloques de 128 MB. Dependiendo del factor de replicación, se crean réplicas de bloques. Los bloques y sus réplicas se almacenan en diferentes DataNodes.

2. Una vez que todos los bloques se almacenan en HDFS DataNodes, el usuario puede procesar los datos.

3. Para procesar los datos, el cliente envía el programa MapReduce a Hadoop.

4. ResourceManager luego programó el programa enviado por el usuario en nodos individuales en el clúster.

5. Una vez que todos los nodos completan el procesamiento, la salida se vuelve a escribir en el HDFS.

Resumen

En este artículo, hemos estudiado todo el funcionamiento de Hadoop. Espero que después de leer este artículo, comprenda cómo Hadoop almacena y procesa cantidades masivas de datos.

El artículo también explica cómo se programan los recursos entre las aplicaciones de los recursos. El artículo describe los principales demonios que se ejecutan en el clúster de Hadoop y los componentes principales de Hadoop.

Espero que comprenda cómo funciona internamente Hadoop.

¡¡Sigue Aprendiendo!!