Datopía con Hadoop Yarn

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 una tierra caprichosa llamada Datopia, donde la información fluye como corrientes de conocimiento puro, vivía un ser curioso llamado Datina. El único propósito de Datina era entender el funcionamiento intrincado del reino de los datos y aprovechar su potencial. Un día, Datina se topó con una fuerza misteriosa conocida como Hadoop, una herramienta poderosa capaz de procesar grandes cantidades de datos. Sin embargo, para desatar por completo sus capacidades, Datina necesitaba dominar el arte de ejecutar comandos de Yarn y manipular archivos jar.

El objetivo de este laboratorio es guiar a Datina a través del proceso de utilizar comandos de Yarn y archivos jar dentro del ecosistema de Hadoop. Al completar este laboratorio, Datina adquirirá las habilidades necesarias para administrar y ejecutar aplicaciones de manera eficiente, desbloqueando el verdadero potencial de Hadoop en la tierra de Datopia.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHDFSGroup(["Hadoop HDFS"]) hadoop(("Hadoop")) -.-> hadoop/HadoopMapReduceGroup(["Hadoop MapReduce"]) hadoop(("Hadoop")) -.-> hadoop/HadoopYARNGroup(["Hadoop YARN"]) hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("HDFS Setup") hadoop/HadoopHDFSGroup -.-> hadoop/fs_ls("FS Shell ls") hadoop/HadoopMapReduceGroup -.-> hadoop/mappers_reducers("Coding Mappers and Reducers") hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("Hadoop YARN Basic Setup") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("Yarn Commands application") hadoop/HadoopYARNGroup -.-> hadoop/yarn_log("Yarn Commands log") hadoop/HadoopYARNGroup -.-> hadoop/yarn_jar("Yarn Commands jar") hadoop/HadoopYARNGroup -.-> hadoop/yarn_node("Yarn Commands node") hadoop/HadoopHiveGroup -.-> hadoop/hive_setup("Hive Setup") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/fs_ls -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/mappers_reducers -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/yarn_setup -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/yarn_app -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/yarn_log -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/yarn_jar -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/yarn_node -.-> lab-289011{{"Datopía con Hadoop Yarn"}} hadoop/hive_setup -.-> lab-289011{{"Datopía con Hadoop Yarn"}} end

Explorando el entorno de Hadoop

En este paso, nos familiarizaremos con el entorno de Hadoop y aseguraremos de que todos los componentes necesarios estén correctamente configurados.

Primero, para cambiar al usuario hadoop:

su - hadoop

Luego, verificando la versión de Hadoop:

hadoop version

Deberías ver una salida similar a la siguiente:

Hadoop 3.3.6
...

Listando los archivos jar disponibles

En este paso, aprenderemos a listar los archivos jar disponibles en el entorno de Hadoop. Estos archivos jar contienen aplicaciones y utilidades preconstruidas que se pueden ejecutar utilizando comandos de Yarn.

ls $HADOOP_HOME/share/hadoop/mapreduce/*.jar

La salida mostrará una lista de archivos jar ubicados en el directorio $HADOOP_HOME/share/hadoop/mapreduce. Estos archivos jar se pueden utilizar con comandos de Yarn para ejecutar diversas aplicaciones y utilidades.

/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-app-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-common-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.6.jar
...

Ejecutando un archivo jar con Yarn

En este paso, aprenderemos a ejecutar un archivo jar utilizando el comando yarn jar. Usaremos el archivo jar hadoop-mapreduce-examples como ejemplo.

Ahora, ejecutemos el ejemplo de WordCount del archivo jar hadoop-mapreduce-examples

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

Consejo: Puedes leer el contenido del archivo con hadoop fs -cat /home/hadoop/input/*

El contenido del archivo de entrada:

hello world
hello labex
hello Hadoop
hello Java

En el comando anterior, especificamos el archivo jar hadoop-mapreduce-examples-3.3.6.jar, la aplicación a ejecutar wordcount y las rutas de entrada y salida /home/hadoop/input y /home/hadoop/output, respectivamente.

Después de ejecutar el comando, deberías ver una salida similar a la siguiente:

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [19:54:17]
Hadoop	1
Java	1
hello	4
labex	1
world	1

Monitoreando aplicaciones de Yarn

En este paso, aprenderemos a monitorear y administrar aplicaciones de Yarn utilizando varios comandos.

Listar aplicaciones de Yarn en ejecución:

yarn application -list

La salida de ejemplo en la terminal:

UBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED] and tags: []):1
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1711070937750_0001	          word count	           MAPREDUCE	    hadoop	   default	          FINISHED	         SUCCEEDED	           100%	http://iZj6cdxwclh8pms0k1vyyhZ:19888/jobhistory/job/job_1711070937750_0001

Obtener el estado de la aplicación

yarn application -status <application_id>

La salida de ejemplo en la terminal:

hadoop:~/ $ yarn application -status application_1711070937750_0001   [9:31:46]
2024-03-22 09:33:12,186 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
2024-03-22 09:33:12,521 INFO conf.Configuration: resource-types.xml not found
2024-03-22 09:33:12,522 INFO resource.ResourceUtils: Unable to find'resource-types.xml'.
Application Report :
	Application-Id : application_1711070937750_0001
	Application-Name : word count
	Application-Type : MAPREDUCE
	User : hadoop
	Queue : default
	Application Priority : 0
	Start-Time : 1711071042168
	Finish-Time : 1711071057334

Detener una aplicación en ejecución

yarn application -kill <application_id>

La salida de ejemplo en la terminal:

hadoop:~/ $ yarn application -kill application_1711070937750_0001     [9:33:14]
2024-03-22 09:34:45,075 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Application application_1711070937750_0001 has already finished

Consejos: Puedes listar todas las aplicaciones con yarn application -list -appStates ALL

El comando yarn application te permite listar, monitorear y administrar aplicaciones de Yarn. Puedes recuperar el estado de la aplicación e incluso detener una aplicación en ejecución utilizando los subcomandos respectivos.

Resumen

En este laboratorio, emprendimos un viaje por el territorio de Datopia, donde Datina, una ser curiosa, buscaba desbloquear el verdadero potencial de los comandos de Yarn de Hadoop y los archivos jar. Al completar este laboratorio, Datina adquirió habilidades valiosas en la lista de archivos jar disponibles, la ejecución de aplicaciones utilizando el comando yarn jar y la monitorización y gestión de aplicaciones de Yarn.

A través de ejercicios prácticos, Datina aprendió a navegar por el entorno de Hadoop, a ejecutar aplicaciones preconstruidas como WordCount y a monitorear aplicaciones en ejecución utilizando varios comandos de Yarn. Estas habilidades no solo permiten a Datina aprovechar el poder de Hadoop, sino que también奠定了基础 para una mayor exploración y dominio del mundo de los datos.

Este laboratorio me desafió a crear una experiencia de aprendizaje atractiva e informativa, combinando conceptos técnicos con una narrativa caprichosa. Al diseñar un mundo ficticio y un personaje identificable, pretendí hacer que el proceso de aprendizaje fuera más ameno y accesible, especialmente para los principiantes. Además, me centré en proporcionar instrucciones claras, fragmentos de código de ejemplo y explicaciones detalladas para garantizar un viaje de aprendizaje fluido.