Maîtrise de la Gestion des Ressources Ninja

HadoopHadoopBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans le pays du soleil levant antique, niché parmi les sommets majestueux du Mont Fuji, un village caché de ninja prospérait. Ici, l'art de la discrétion, de la précision et de la capacité à trouver des ressources était perfectionné. Parmi les rangs d'élite de ce village se trouvait Yuki, une maîtresse réputée des armes ninja.

La forge de Yuki était un spectacle à voir, un témoignage de son dévouement et de son ingéniosité inébranlables. A partir de l'acier le plus fin, elle forgeait des lames qui pouvaient couper l'air avec grâce et sans effort, des shuriken qui pouvaient trouver leur cible avec une précision incroyable, et des kunai qui pouvaient percer même la plus résistante armure.

Cependant, le véritable talent de Yuki ne résidait pas seulement dans son art de la métallurgie, mais également dans sa capacité à gérer les ressources du village. Au fur et à mesure que la tribu de ninja grandissait, la demande en armes et en équipement augmentait également, et Yuki se retrouva chargée d'assurer que chaque ninja ait accès aux outils dont ils avaient besoin, quand ils en avaient besoin.

C'est dans cette quête que Yuki découvrit le pouvoir du Hadoop Resource Manager, un outil puissant qui lui permettrait d'allouer et de gérer efficacement les ressources du village, assurant ainsi le succès de chaque mission de ninja.

Comprendre le Hadoop Resource Manager

Dans cette étape, nous plongerons dans les bases du Hadoop Resource Manager et de son rôle dans l'écosystème Hadoop.

Tout d'abord, changez l'utilisateur par défaut :

su - hadoop

Le Hadoop Resource Manager est un composant crucial de l'architecture YARN (Yet Another Resource Negotiator) dans Hadoop. Il est responsable de gérer les ressources de calcul du cluster et de planifier les applications sur les nœuds disponibles.

Pour commencer, explorons l'architecture du Resource Manager :

+------------------+
|  Resource Manager|
+------------------+
|  Scheduler       |
|  ApplicationsMaster
|  NodeManager     |
+------------------+

Le Resource Manager est composé de trois principaux composants :

  1. Scheduler : Ce composant est responsable d'allouer des ressources aux diverses applications en cours d'exécution en fonction de politiques de planification prédéfinies.
  2. ApplicationsManager : Ce composant est responsable d'accepter les soumissions de travaux, de négocier le premier conteneur pour exécuter le ApplicationMaster et de fournir le service de redémarrage du conteneur ApplicationMaster en cas d'échec.
  3. NodeManager : Ce composant s'exécute sur chaque nœud du cluster et est responsable du lancement et de la surveillance des conteneurs attribués par le Scheduler.

Pour mieux comprendre la fonctionnalité du Resource Manager, explorons un exemple simple.

Soumettez un travail MapReduce d'échantillonnage au cluster :

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

Vérifiez l'état du travail :

yarn application -list

La sortie devrait ressembler à ceci :

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

Dans cet exemple, nous soumettons un travail MapReduce au cluster en utilisant la commande yarn. Le Resource Manager reçoit la demande de travail et attribue les ressources nécessaires (conteneurs) pour exécuter le travail. Nous pouvons ensuite vérifier l'état du travail et consulter les journaux à l'aide des commandes fournies.

Configurer le Resource Manager

Dans cette étape, nous explorerons comment configurer le Resource Manager pour répondre aux besoins spécifiques de notre village de ninja.

Le comportement du Resource Manager peut être personnalisé grâce à diverses propriétés de configuration. Ces propriétés sont généralement définies dans le fichier yarn-site.xml situé dans le répertoire de configuration Hadoop (/home/hadoop/hadoop/etc/hadoop).

Voyons le fichier de configuration 'yarn' et ajoutons quelques configurations supplémentaires pour lui :

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

Ajoutons les configurations :

  <!-- Spécifiez la politique de planification -->
  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>

  <!-- Configurez le nombre maximum d'applications à exécuter simultanément -->
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>

  <!-- Configurez le nombre minimum et maximum de noyaux virtuels par conteneur -->
  <property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value>
  </property>

Dans ce fichier de configuration, nous avons défini les propriétés suivantes :

  • yarn.resourcemanager.scheduler.class : Spécifie la politique de planification à utiliser. Dans ce cas, nous utilisons le Fair Scheduler, qui assure que les ressources sont allouées équitablement entre les applications.
  • yarn.scheduler.maximum-allocation-mb : Définit la quantité maximale de mémoire (en mégaoctets) qui peut être allouée à un seul conteneur.
  • yarn.scheduler.minimum-allocation-vcores et yarn.scheduler.maximum-allocation-vcores : Définissent respectivement le nombre minimum et maximum de noyaux virtuels qui peuvent être alloués à un conteneur.

Pour appliquer ces modifications de configuration, nous devons redémarrer les services Hadoop.

Surveiller et Gérer les Applications

Dans cette étape, nous allons apprendre à surveiller et à gérer les applications exécutées sur le cluster Hadoop en utilisant le Resource Manager.

Le Resource Manager fournit une interface utilisateur web (UI) qui vous permet de surveiller et de gérer les ressources du cluster et les applications en cours d'exécution. Pour accéder à l'UI du Resource Manager, ouvrez un navigateur web et accédez à http://<resource-manager-hostname>:8088.

Dans l'UI du Resource Manager, vous verrez diverses sections qui fournissent des informations sur le cluster, les nœuds et les applications. Voici quelques fonctionnalités clés :

  1. Métriques du Cluster : Cette section affiche les métriques globales du cluster, telles que les ressources disponibles au total, le nombre d'applications en cours d'exécution et l'utilisation des ressources.
  2. Gestionnaires de Nœuds : Cette section liste tous les Gestionnaires de Nœuds actifs dans le cluster, ainsi que leur statut, les ressources disponibles et les conteneurs en cours d'exécution.
  3. Applications en cours d'exécution : Cette section montre les applications actuellement en cours d'exécution, leur progression, leur utilisation des ressources et d'autres détails.
  4. Historique des Applications : Cette section fournit une vue historique des applications terminées, y compris leurs journaux et métriques.

Pour démontrer comment gérer les applications à l'aide de l'UI du Resource Manager, soumettons une nouvelle application au cluster.

## Soumettez un travail WordCount au cluster
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

Ce script soumet un travail MapReduce WordCount au cluster. Avant d'exécuter le script, assurez-vous de créer le répertoire d'entrée et de placer quelques fichiers texte dedans :

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

Après avoir soumis le travail, vous pouvez surveiller sa progression et le gérer à partir de l'UI du Resource Manager. Vous pouvez consulter les journaux du travail, le tuer si nécessaire ou vérifier le répertoire de sortie une fois le travail terminé.

Voyons le contenu du fichier d'entrée :

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

Voyons le contenu du fichier de sortie :

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

Sommaire

Dans ce laboratoire, nous avons exploré le Hadoop Resource Manager, un outil puissant qui permet d'effectuer une allocation et une gestion efficaces des ressources dans un cluster Hadoop. Nous avons plongé dans l'architecture du Resource Manager, appris à le configurer pour répondre à des besoins spécifiques et découvert diverses techniques de surveillance et de gestion des applications exécutées sur le cluster.

Au cours du parcours de Yuki, la maîtresse-forgeuse de weapons ninja, nous avons été témoins du pouvoir transformateur du Resource Manager pour s'assurer que chaque ninja ait accès aux outils dont ils ont besoin pour mener à bien leurs missions. Tout comme Yuki a maîtrisé l'art de la gestion des ressources, nous aussi pouvons exploiter les capacités du Hadoop Resource Manager pour optimiser nos flux de traitement de données volumineuses.

Ce laboratoire a non seulement fourni une expérience pratique avec le Resource Manager, mais a également transmis une compréhension plus approfondie de l'écosystème Hadoop et de ses composants polyvalents. En adoptant les principes de la gestion des ressources et de la planification efficace, nous pouvons ouvrir de nouveaux horizons de maîtrise du traitement de données et affronter même les défis de données volumineuses les plus redoutables.