Introduction
Dans une terre magique appelée Datopia, où l'information circule comme des torrents de savoir pur, vivait une créature curieuse appelée Datina. Le seul but de Datina était de comprendre le fonctionnement complexe du royaume des données et d'en exploiter le potentiel. Un jour, Datina tomba sur une force mystérieuse connue sous le nom de Hadoop, un outil puissant capable de traiter d'énormes quantités de données. Cependant, pour libérer pleinement ses capacités, Datina devait maîtriser l'art d'exécuter des commandes Yarn et de manipuler des fichiers jar.
Le but de ce laboratoire est de guider Datina dans le processus d'utilisation des commandes Yarn et des fichiers jar dans l'écosystème Hadoop. En complétant ce laboratoire, Datina acquerra les compétences nécessaires pour gérer et exécuter efficacement des applications, libérant le véritable potentiel de Hadoop dans la terre de Datopia.
Explorer l'environnement Hadoop
Dans cette étape, nous allons nous familiariser avec l'environnement Hadoop et nous assurer que tous les composants nécessaires sont correctement configurés.
Tout d'abord, pour basculer sur l'utilisateur hadoop :
su - hadoop
Ensuite, pour vérifier la version de Hadoop :
hadoop version
Vous devriez voir une sortie similaire à ceci :
Hadoop 3.3.6
...
Lister les fichiers jar disponibles
Dans cette étape, nous allons apprendre à lister les fichiers jar disponibles dans l'environnement Hadoop. Ces fichiers jar contiennent des applications et des utilitaires prédéfinis qui peuvent être exécutés à l'aide de commandes Yarn.
ls $HADOOP_HOME/share/hadoop/mapreduce/*.jar
La sortie affichera une liste de fichiers jar situés dans le répertoire $HADOOP_HOME/share/hadoop/mapreduce. Ces fichiers jar peuvent être utilisés avec des commandes Yarn pour exécuter diverses applications et utilitaires.
/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
...
Exécuter un fichier jar avec Yarn
Dans cette étape, nous allons apprendre à exécuter un fichier jar à l'aide de la commande yarn jar. Nous utiliserons le fichier jar hadoop-mapreduce-examples comme exemple.
Maintenant, exécutez l'exemple WordCount à partir du fichier 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
Astuce : Vous pouvez lire le contenu du fichier avec hadoop fs -cat /home/hadoop/input/*
Le contenu du fichier d'entrée :
hello world
hello labex
hello Hadoop
hello Java
Dans la commande ci-dessus, nous spécifions le fichier jar hadoop-mapreduce-examples-3.3.6.jar, l'application à exécuter wordcount et les chemins d'entrée et de sortie /home/hadoop/input et /home/hadoop/output respectivement.
Après avoir exécuté la commande, vous devriez voir une sortie similaire à ceci :
hadoop:~/ $ hadoop fs -cat /home/hadoop/output/* [19:54:17]
Hadoop 1
Java 1
hello 4
labex 1
world 1
Surveiller les applications Yarn
Dans cette étape, nous allons apprendre à surveiller et à gérer les applications Yarn à l'aide de diverses commandes.
Lister les applications Yarn en cours d'exécution :
yarn application -list
La sortie d'exemple dans le 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
Obtenir l'état de l'application
yarn application -status <application_id>
La sortie d'exemple dans le 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
Tuer une application en cours d'exécution
yarn application -kill <application_id>
La sortie d'exemple dans le 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
Astuces : vous pouvez lister toutes les applications avec yarn application -list -appStates ALL
La commande yarn application vous permet de lister, de surveiller et de gérer les applications Yarn. Vous pouvez récupérer l'état de l'application et même tuer une application en cours d'exécution à l'aide des sous-commandes respectives.
Résumé
Dans ce laboratoire, nous avons entrepris un voyage dans le pays de Datopia, où Datina, une créature curieuse, a cherché à débloquer le véritable potentiel des commandes Yarn et des fichiers jar d'Hadoop. En complétant ce laboratoire, Datina a acquis des compétences précieuses en listant les fichiers jar disponibles, en exécutant des applications à l'aide de la commande yarn jar et en surveillant et en gérant les applications Yarn.
Par des exercices pratiques, Datina a appris à naviguer dans l'environnement Hadoop, à exécuter des applications prédéfinies comme WordCount et à surveiller les applications en cours d'exécution à l'aide de diverses commandes Yarn. Ces compétences non seulement habilitent Datina à exploiter le pouvoir d'Hadoop, mais également jettent les bases pour une exploration et une maîtrise plus approfondies du domaine des données.
Ce laboratoire m'a défie à créer une expérience d'apprentissage captivante et informative, en combinant des concepts techniques avec un récit fantastique. En concevant un monde fictif et un personnage attachant, j'ai cherché à rendre le processus d'apprentissage plus agréable et accessible, en particulier pour les débutants. De plus, j'ai concentré mon attention sur la fourniture d'instructions claires, de fragments de code exemple et d'explications détaillées pour assurer un parcours d'apprentissage sans heurts.



