Dominio en la Gestión de Recursos Ninja

HadoopHadoopBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En la antigua tierra del sol naciente, escondida entre las majestuosas cumbres del Monte Fuji, prosperaba un pueblo oculto de ninjas. Allí, el arte de la sigilo, la precisión y la astucia se perfeccionó. Entre los rangos elite de este pueblo se encontraba Yuki, una renombrada maestra de las armas ninja.

La forja de Yuki era una vista impresionante, testimonio de su inquebrantable dedicación e ingenio. Con el acero más fino, fabricaba cuchillos que podían cortar el aire con una gracia esforzada, shuriken que podían encontrar su objetivo con una precisión asombrosa y kunai que podían atravesar incluso la armadura más resistente.

Sin embargo, el verdadero dominio de Yuki no radicaba solo en su maestría en el arte de la forja, sino también en su capacidad para administrar los recursos del pueblo. A medida que la tribu de ninjas crecía, también crecía la demanda de armas y equipo, y Yuki se encontró con la tarea de garantizar que cada ninja tuviera acceso a las herramientas que necesitaba, cuando las necesitaba.

Fue en esta búsqueda que Yuki descubrió el poder del Administrador de Recursos de Hadoop, una herramienta poderosa que le permitiría asignar y administrar eficientemente los recursos del pueblo, asegurando el éxito de cada misión de los ninjas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopYARNGroup(["Hadoop YARN"]) hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("Hadoop YARN Basic Setup") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("Yarn Commands application") hadoop/HadoopYARNGroup -.-> hadoop/yarn_node("Yarn Commands node") hadoop/HadoopYARNGroup -.-> hadoop/resource_manager("Resource Manager") hadoop/HadoopYARNGroup -.-> hadoop/node_manager("Node Manager") subgraph Lab Skills hadoop/yarn_setup -.-> lab-288992{{"Dominio en la Gestión de Recursos Ninja"}} hadoop/yarn_app -.-> lab-288992{{"Dominio en la Gestión de Recursos Ninja"}} hadoop/yarn_node -.-> lab-288992{{"Dominio en la Gestión de Recursos Ninja"}} hadoop/resource_manager -.-> lab-288992{{"Dominio en la Gestión de Recursos Ninja"}} hadoop/node_manager -.-> lab-288992{{"Dominio en la Gestión de Recursos Ninja"}} end

Comprendiendo el Administrador de Recursos de Hadoop

En este paso, profundizaremos en los conceptos básicos del Administrador de Recursos de Hadoop y su papel en el ecosistema de Hadoop.

Primero, cambie el usuario predeterminado:

su - hadoop

El Administrador de Recursos de Hadoop es un componente crucial de la arquitectura de YARN (Yet Another Resource Negotiator) en Hadoop. Es responsable de administrar los recursos computacionales del clúster y de programar aplicaciones en los nodos disponibles.

Para comenzar, exploremos la arquitectura del Administrador de Recursos:

+------------------+
|  Administrador de Recursos|
+------------------+
|  Programador       |
|  Administrador de AplicacionesMaster
|  Administrador de Nodos     |
+------------------+

El Administrador de Recursos consta de tres componentes principales:

  1. Programador: Este componente es responsable de asignar recursos a las diferentes aplicaciones en ejecución según políticas de programación predefinidas.
  2. Administrador de Aplicaciones: Este componente es responsable de aceptar las solicitudes de trabajos, negociar el primer contenedor para ejecutar el Administrador de Aplicaciones y proporcionar el servicio para reiniciar el contenedor del Administrador de Aplicaciones en caso de error.
  3. Administrador de Nodos: Este componente se ejecuta en cada nodo del clúster y es responsable de iniciar y supervisar los contenedores asignados por el Programador.

Para entender mejor la funcionalidad del Administrador de Recursos, exploremos un ejemplo sencillo.

Envíe un trabajo de MapReduce de muestra al clúster:

yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 16 1000000

Verifique el estado del trabajo:

yarn application -list

La salida debería ser similar a esto:

2024-03-23 22:48:44,206 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1711205220447_0001	     QuasiMonteCarlo	           MAPREDUCE	    hadoop	   default	           RUNNING	         UNDEFINED

En este ejemplo, enviamos un trabajo de MapReduce al clúster usando el comando yarn. El Administrador de Recursos recibe la solicitud del trabajo y asigna los recursos necesarios (contenedores) para ejecutar el trabajo. Luego podemos verificar el estado del trabajo y ver los registros usando los comandos proporcionados.

Configurando el Administrador de Recursos

En este paso, exploraremos cómo configurar el Administrador de Recursos para satisfacer las necesidades específicas de nuestro pueblo de ninjas.

El comportamiento del Administrador de Recursos se puede personalizar a través de varias propiedades de configuración. Estas propiedades se suelen establecer en el archivo yarn-site.xml ubicado en el directorio de configuración de Hadoop (/home/hadoop/hadoop/etc/hadoop).

Veamos el archivo de configuración de 'yarn' y agreguemos algunas configuraciones adicionales para él:

vim /home/hadoop/hadoop/etc/hadoop/yarn-site.xml

Agregue las configuraciones:

  <!-- Especifique la política de programación -->
  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>

  <!-- Configure el número máximo de aplicaciones que se pueden ejecutar concurrentemente -->
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>

  <!-- Configure el número mínimo y máximo de núcleos virtuales por contenedor -->
  <property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value>
  </property>

En este archivo de configuración, hemos establecido las siguientes propiedades:

  • yarn.resourcemanager.scheduler.class: Especifica la política de programación que se utilizará. En este caso, estamos usando el Programador Justo, que garantiza que los recursos se asignen equitativamente entre las aplicaciones.
  • yarn.scheduler.maximum-allocation-mb: Establece la cantidad máxima de memoria (en megabytes) que se puede asignar a un solo contenedor.
  • yarn.scheduler.minimum-allocation-vcores y yarn.scheduler.maximum-allocation-vcores: Definen el número mínimo y máximo de núcleos virtuales que se pueden asignar a un contenedor, respectivamente.

Para aplicar estos cambios de configuración, necesitamos reiniciar los servicios de Hadoop.

Monitoreando y Administrando Aplicaciones

En este paso, aprenderemos cómo monitorear y administrar aplicaciones que se ejecutan en el clúster de Hadoop utilizando el Administrador de Recursos.

El Administrador de Recursos proporciona una interfaz de usuario web (UI) que te permite monitorear y administrar los recursos del clúster y las aplicaciones en ejecución. Para acceder a la UI del Administrador de Recursos, abre un navegador web y navega a http://<resource-manager-hostname>:8088.

En la UI del Administrador de Recursos, verás varias secciones que proporcionan información sobre el clúster, los nodos y las aplicaciones. Aquí hay algunas características clave:

  1. Métricas del Clúster: Esta sección muestra las métricas generales del clúster, como los recursos disponibles en total, el número de aplicaciones en ejecución y la utilización de recursos.
  2. Administradores de Nodos: Esta sección enumera todos los Administradores de Nodos activos en el clúster, junto con su estado, recursos disponibles y contenedores en ejecución.
  3. Aplicaciones en Ejecución: Esta sección muestra las aplicaciones actualmente en ejecución, su progreso, uso de recursos y otros detalles.
  4. Historial de Aplicaciones: Esta sección proporciona una vista histórica de las aplicaciones completadas, incluyendo sus registros y métricas.

Para demostrar cómo administrar aplicaciones utilizando la UI del Administrador de Recursos, enviaremos una nueva aplicación al clúster.

## Envie un trabajo de WordCount al clúster
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

Este script envía un trabajo de MapReduce de WordCount al clúster. Antes de ejecutar el script, asegúrate de crear el directorio de entrada y colocar algunos archivos de texto en él:

hdfs dfs -mkdir -p /home/hadoop/input
hdfs dfs -put /home/hadoop/hello.txt /home/hadoop/input

Después de enviar el trabajo, puedes monitorear su progreso y administrarlo desde la UI del Administrador de Recursos. Puedes ver los registros del trabajo, detener el trabajo si es necesario o revisar el directorio de salida una vez que el trabajo se complete.

Ver el contenido del archivo de entrada:

hadoop:~/ $ hadoop fs -cat /home/hadoop/input/*                      [22:56:37]
hello labex
hello hadoop
hello spark
hello flink

Ver el contenido del archivo de salida:

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [22:57:37]
flink	1
hadoop	1
hello	4
labex	1
spark	1

Resumen

En este laboratorio, exploramos el Administrador de Recursos de Hadoop, una herramienta poderosa que permite la asignación y gestión eficientes de recursos en un clúster de Hadoop. Profundizamos en la arquitectura del Administrador de Recursos, aprendimos cómo configurarlo para satisfacer necesidades específicas y descubrimos varias técnicas para monitorear y administrar aplicaciones que se ejecutan en el clúster.

A través de la jornada de Yuki, la maestra forjera de armas ninja, presenciamos el poder transformador del Administrador de Recursos para garantizar que cada ninja tuviera acceso a las herramientas necesarias para completar con éxito sus misiones. Al igual que Yuki dominó el arte de la gestión de recursos, nosotros también podemos aprovechar las capacidades del Administrador de Recursos de Hadoop para optimizar nuestros flujos de trabajo de procesamiento de grandes datos.

Este laboratorio no solo proporcionó experiencia práctica con el Administrador de Recursos, sino que también inculcó una comprensión más profunda del ecosistema de Hadoop y sus componentes versátiles. Al abrazar los principios de gestión de recursos y programación eficiente, podemos desbloquear nuevos ámbitos de destreza en el procesamiento de datos y enfrentar incluso los desafíos de grandes datos más formidables.