Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les bases de Hadoop

La leçon complète est à lire ici. Créez un compte gratuit pour la pratiquer dans un labo en direct.

Labo de conteneurs7 min de lecture6 commandes

Ce que tu vas faire

Hadoop stocke un très gros fichier en le coupant en blocs répartis sur beaucoup de machines, puis il le traite là où sont les blocs. HDFS est le système de fichiers : un NameNode qui sait quels blocs forment quel fichier, et des DataNodes qui les gardent. MapReduce est la façon de traiter : chaque machine compte sa propre partie, puis on additionne les comptes. Ton lab est un petit cluster (un groupe de machines qui travaillent ensemble) avec un de chaque. Tu vas y mettre un fichier, le relire et regarder un comptage de mots.

Avant de commencer

Remarque

Appuie sur Démarrer le lab dans la barre en haut de la leçon et attends qu'il indique qu'il est en marche. Les services sont namenode, datanode, resourcemanager, nodemanager et client, et ils se retrouvent les uns les autres grâce à ces noms. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de ton lab, l'une après l'autre, dans la même session. Pour suivre les commandes ou taper les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.

1. Mets un fichier dans HDFS

La première commande écrit une phrase dans un fichier de ton propre terminal. La deuxième l'envoie à HDFS : elle interroge le NameNode, qui répond avec l'adresse d'un DataNode. curl la suit grâce à -L et envoie les octets là-bas. Elle n'affiche rien quand tout va bien. Le dossier /user/lab/mine n'existait pas, donc HDFS l'a créé.

Commande
echo 'one fish two fish red fish blue fish' > /tmp/fish.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -L -X PUT -T /tmp/fish.txt 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=CREATE&user.name=lab'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

2. Liste-le et relis-le

La première commande liste le dossier : la réponse est du JSON, et pour fish.txt elle dit "length":37 (la phrase et sa fin de ligne) et "replication":1, une seule copie de chaque bloc, car ce cluster n'a qu'un DataNode. La deuxième relit le fichier et affiche la phrase. Le même fichier est visible dans la page du NameNode, dans ton navigateur, sous Utilities (« utilitaires »), puis Browse the file system (« parcourir le système de fichiers »).

Commande
curl -s 'http://namenode:9870/webhdfs/v1/user/lab/mine?op=LISTSTATUS'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=OPEN'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

3. Lis le comptage de mots

Au démarrage du lab, le cluster a lancé le comptage de mots de Hadoop sur une phrase d'exemple et a laissé la réponse dans HDFS. La première commande l'affiche, une ligne par mot avec son nombre : the vaut 4, dog et fox valent 2. La deuxième demande au ResourceManager comment le job s'est passé et affiche "finalStatus":"SUCCEEDED". Ton terminal n'a pas de commande hadoop, il ne peut donc pas lancer un comptage de ton propre fichier : cette leçon lit le comptage que le lab a déjà fait.

Commande
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/wordcount-out/part-r-00000?op=OPEN'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s http://resourcemanager:8088/ws/v1/cluster/apps | grep -o '"finalStatus":"[A-Z]*"'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Pour les enseignants

Astuce

Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie de chaque élève. Le lab compte cinq services et aucun volume, et rien ici ne se corrige tout seul : l'élève rend le chemin d'un fichier qu'il a mis dans HDFS, les lignes du comptage de mots fait à partir de ce fichier et une phrase sur le rôle du NameNode et celui du DataNode. Chaque élève choisit son texte, donc les réponses diffèrent. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.

À propos de ce labo et de sa source: Lab Hadoop : HDFS et MapReduce, avec un fichier à déposer et un comptage de mots à lire

Vous enseignez à une classe ? Proposez ces leçons à vos élèves avec correction et un labo pour chaque élève.