Configuration de base de Hadoop YARN

HadoopBeginner
Pratiquer maintenant

Introduction

Dans une usine de robots futuriste, où la technologie de pointe rencontre l'ingénierie de précision, vous assumez le rôle de technicien de maintenance de robots. Votre objectif principal est d'assurer l'allocation et la gestion efficaces des ressources informatiques au sein du réseau complexe de l'usine. Ce réseau alimente les fonctions cognitives des robots, leur permettant d'effectuer des tâches complexes avec une précision et une vitesse inégalées.

L'infrastructure informatique de l'usine repose sur l'écosystème Hadoop, en particulier le composant YARN (Yet Another Resource Negotiator). Votre objectif est de maîtriser la configuration de base de Hadoop YARN, vous permettant de distribuer et de gérer sans problème la charge de calcul de l'usine sur plusieurs nœuds, assurant ainsi une performance optimale et une utilisation des ressources.

Explorez l'architecture YARN

Dans cette étape, nous allons explorer l'architecture YARN et ses composants clés, jetant les bases pour comprendre comment elle gère et alloue des ressources au sein de l'écosystème Hadoop.

L'architecture YARN est composée de deux principaux composants :

  1. ResourceManager (RM): Le ResourceManager agit comme l'autorité centrale qui arbitre et alloue les ressources disponibles (processeur, mémoire, etc.) dans le cluster. Il est composé de deux composants :

    • Scheduler: Responsable d'allouer des ressources aux diverses applications en cours d'exécution en fonction de politiques de planification prédéfinies.
    • ApplicationsManager: Responsable d'accepter les soumissions de travaux, de négocier le premier conteneur de ressources pour exécuter le ApplicationMaster et de fournir le service pour redémarrer le conteneur ApplicationMaster en cas d'échec.
  2. NodeManager (NM): Le NodeManager s'exécute sur chaque nœud du cluster et est responsable de gérer les ressources du nœud et de surveiller les conteneurs s'exécutant sur ce nœud.

Pour mieux comprendre l'architecture YARN, allons dans le répertoire de configuration Hadoop et examinons les fichiers de configuration pertinents.

Mais tout d'abord, nous devons changer d'utilisateur :

su - hadoop

Accédez au répertoire de configuration Hadoop :

cd /home/hadoop/hadoop/etc/hadoop/

Ouvrez le fichier yarn-site.xml avec l'outil vim :

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

Dans ce fichier de configuration, nous pouvons voir que le service auxiliaire mapreduce_shuffle est activé pour le NodeManager. Ce service est responsable de gérer les opérations de tri dans les travaux MapReduce, assurant un transfert de données efficace entre les phases de carte et de réduction.

Démarrez les services YARN

Maintenant que nous avons exploré l'architecture YARN et sa configuration, allons démarrer les services YARN sur notre cluster Hadoop.

Tout d'abord, démarrez les services YARN en utilisant la commande suivante :

start-yarn.sh

Ce script démarrera les démon ResourceManager et NodeManager sur les nœuds appropriés du cluster.

Visualisez le processus des services YARN en utilisant la commande suivante :

jps

Le service NodeManager et ResourceManager devrait être visible dans la sortie.

Vous pouvez vérifier l'état des services YARN en utilisant la commande suivante :

yarn node -list

Cette commande affichera une liste des NodeManagers actifs dans le cluster, ainsi que leur état et les ressources disponibles.

2024-03-17 19:27:30,108 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total Nodes:1
         Node-Id      Node-State Node-Http-Address Number-of-Running-Containers
iZj6cdofomqja8ye7wk8kzZ:43689         RUNNING iZj6cdofomqja8ye7wk8kzZ:8042                            0

Dans la sortie ci-dessus, nous pouvons voir qu'un seul NodeManager actif est en cours d'exécution.

Soumettez un travail YARN

Avec les services YARN démarrés et en cours d'exécution, soumettons un travail d'échantillonnage pour tester les capacités d'allocation de ressources et de planification de YARN.

Tout d'abord, préparez un fichier texte d'entrée appelé input.txt dans le système de fichiers Hadoop qui contient le contenu texte à compter.

echo -e "Hello World\nHello Hadoop\nYARN is cool" > input.txt
hadoop fs -put input.txt /input.txt

Ensuite, le fichier JAR du programme d'exemple peut être trouvé dans le répertoire d'installation de Hadoop, généralement situé à $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar. Vous pouvez utiliser ce fichier JAR pour exécuter le programme de comptage de mots.

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

Cette commande soumettra le travail MapReduce au ResourceManager YARN, qui attribuera des ressources et planifiera le travail sur les NodeManagers disponibles.

Une fois le travail terminé, vous pouvez voir la sortie dans le répertoire /output :

hdfs dfs -cat /output/part-r-00000

Cela devrait afficher la sortie du comptage de mots :

Hadoop  1
Hello   2
World   1
YARN    1
cool    1
is      1

Résumé

Dans ce laboratoire, nous avons exploré l'architecture YARN et ses composants clés, appris à configurer et à démarrer les services YARN, et soumis un travail MapReduce d'échantillonnage au cluster YARN. En complétant ce laboratoire, vous avez acquis une expérience pratique de la configuration de base et du fonctionnement de Hadoop YARN, vous permettant de gérer et d'allouer efficacement les ressources informatiques dans un environnement distribué.

Le laboratoire a non seulement fourni une compréhension pratique de YARN, mais a également mis en évidence l'importance de la gestion des ressources et de la planification dans les infrastructures informatiques modernes. En tant que technicien de maintenance de robots dans une usine futuriste, maîtriser ces compétences vous permettra d'optimiser les performances et l'efficacité des ressources informatiques de l'usine, assurant ainsi des opérations fluides et fiables pour les robots.