TP1 : Initiation HADOOP
L’objectif de ce TP est de se familiariser avec HADOOP et l’exploration
des fonctionnalités de HDFS.
1. Mise en place de l’environnement
Afin d’exécuter les différentes taches de TP, il faut préparer
l'environnement logiciel nécessaire.
a) Mise en place de machine virtuelle
Le TP une machine virtuelle sur laquelle Hadoop / HDFS ont été installés.
Pour simuler un environnement serveur distant « classique », la machine
est accessible via SSH mais ne propose pas d’interface graphique.
Pour taper les différentes commandes de TP, vous pourriez directement utiliser
la fenêtre / le terminal affiché par VirtualBox; mais cela est fortement
déconseillé: vous ne pourrez ni copier-coller, ni faire dérouler l’affichage en cas
de besoin.
A la place, il est recommandé utiliser un client SSH. La machine virtuelle,
une fois importée, expose le port TCP 2222 sur la machine hôte et fait
pointer ce port vers le port 22 (SSH) de la machine virtuelle.
En conséquence, vous pouvez accéder à la machine en vous connectant en
SSH sur localhost au port 2222 (ou encore sur 127.0.0.1 au port 2222).
Edition et copie de fichiers :
Etapes à suivre :
• Installer VirtualBox (https://www.virtualbox.org/).
• Importer la machine virtuelle .ova du TP. Il s'agit d'un système
GNU/Linux Debian, amd64. Lien
• Pour vous connecter en SSH sous Windows, téléchargez et
installez PuTTY (ou autre client SSH).
• Démarrer la machine virtuelle.
• Lancez PuTTY; et dans la fenêtre initiale qui s’affiche, rentrez comme
hôte de connexion « localhost » et comme port « 2222 » (à la place de «
22 »). Rentrez également comme nom d’utilisateur « mbds ».
• Un mot de passe vous sera demandé: rentrez « password »
• Vous pouvez aussi sauvegarder ces informations au sein d’un profil; il
vous suffira alors dans le futur de double cliquer sur ce profil pour
vous connecter à la machine virtuelle sans rentrer ces informations à
nouveau.
2. Initiation HADOOP : HDFS
Toutes les commandes interagissant avec le système Hadoop commencent par
hadoop fs ou hdfs dfs. Ensuite, les options rajoutées sont très largement
inspirées des commandes Unix standard. Le tableau suivant résume les
commandes les plus utilisées dans Hadoop.
Commande Résultat
hadoop fs -ls Lister le contenu d'un dossier
hadoop fs -mkdir Créer un dossier dans HDFS
<nomdossier>
hadoop fs -put < Path[Filename]>
<nomrep>
Charger un fichier du local (répertoire
ex:hadoop fs –put Linux) a HDFS
/home/hadoop/Desktop/file.txt
hadoop fs -get < Path[Filename]>
<nomrep>
Exporter un ou plusieurs fichiers de HDFS
ex: hadoop fs –get file.txt au local
/home/hadoop/Desktop/
hadoop fs -cat Afficher le contenu d'un fichier
<Path[Filename]>
hadoop fs -tail Afficher les dernières lignes d'un fichier
<Path[Filename]>
hadoop fs -rm Supprimer un fichier dans HDFS
<Path[Filename]>
Hadoop fs -touchz Créer un fichier vide dans HDFS
<Path[Filename]>
Hadoop fs -mv < Déplacer le fichier sous le répertoire rep
Path[Filename]> <rep>
Dans cette partie nous nous intéressons à la manipulation des commandes de
base HDFS. Dans ce contexte, il faut bien faire la distinction entre votre compte
Linux ordinaire et le compte que vous avez sur HDFS. Les commandes hadoop
fs -cmde . . . s'adressent à ce dernier. Les commandes Unix habituelles
s'adressent au premier.
Etapes à suivre :
• Démarrer Hadoop avec la commande: start-hadoop
• Vérifier le bon fonctionnement de Hadoop en exécutant la
commande: hdfs dfsadmin -report
• Afficher ce qu'il y a à la racine HDFS en tapant : hadoop fs -ls /. Vous
pouvez descendre inspecter les dossiers que vous voyez. Il n'y a pas
de commande équivalente à cd, parce qu'il n'y a pas de notion de
dossier courant dans HDFS, donc à chaque fois, il faut remettre le
chemin complet.
• Afficher les fichiers des sous-dossiers avec leurs tailles en tapant
: hadoop fs -ls -R -h /tmp
• Créer un répertoire fichiers dans votre espace HDFS.
• Créer un fichier appelé bonjour.txt dans votre compte Linux. Ecrire le
mot « bonjour » dans bonjour.txt a l'aide de nano. La création et
l’édition de fichier se fait en tapant :
nano bonjour.txt
• Copier ce fichier sur HDFS et vérifier le résultat en tapant la
commande hadoop fs -ls.
• Supprimer ce fichier de HDFS et vérifier le résultat.
• Remettre à nouveau ce fichier par hadoop fs -copyFromLocal
bonjour.txt. Cette commande est similaire a hadoop fs -put.
• Déplacer bonjour.txt sous le répertoire Fichiers en tapant hadoop fs -mv
bonjour.txt Vérifier que le déplacement a bien été fait.
• Copier le fichier bonjour.txt dans un nouveau fichier salut.txt dans
le même répertoire. Vérifier que la copie a bien été faite.
• Afficher le nombre de sous-dossiers, fichiers et octets occupes en
tapant : hadoop fs –count/
• On se propose maintenant de télécharger un fichier dont l'URL est
la suivante : http://www.textfiles.com/etext/FICTION/dracula.txt
o Téléchargez le fichier dracula.txt dans votre compte.
o Copiez ce fichier vers HDFS et vérifiez sa présence.
o Supprimez le fichier de votre compte local ainsi que de HDFS
• Voici une autre manière de faire sans stocker le fichier dans votre
compte : wget -O - http://www.textfiles.com/etext/FICTION/dracula.txt
| hadoop fs -put - drac.txt
• Vérifier le fichier a été enregistré dans hdfs : hadoop fs –ls
• Lister les blocs du fichier drac.txt en tapant hadoop fsck /user/…/drac.txt
-files -blocks.