Hadoop Distributed File System: HDFS HDFS est un système de fichier distribué et extensible écrit en java. Créé pour stocker et traiter un très grand volume de données sur plusieurs machines en mode distribué. Les données sont répliquées sur plusieurs machines pour garantir la disponibilité des données et palier ainsi à la problématique des pannes. Son principe est d’écrire une seule fois les données et accéder plusieurs fois. Les fichiers sont stockés dans des blocs, chaque bloc correspond à une machine distincte, la taille des blocs de 64 Mo par défaut. Exemple : Un fichier client.dat de 200 Mo sera décomposé de 3 blocs de 64 Mo et le 4eme bloc stockera 8 Mo. Bloc 1 Bloc 2 Bloc 3 Bloc 4 64 Mo 64 Mo 8 Mo 64 Mo Figure - - Le fichier Client sur le cluster Hadoop Architecture HDFS : Datanode Node 3 Node 2 Datanode Datanode ...... Node 1 Les commandes les plus utilisées : Créer un dossier dans HDFS : Commande : hadoop fs -mkdir Exemple : hadoop fs -mkdir /user/monDossier hadoop fs -mkdir /user/monDossier1 /user/monDossier2 /user/monDossier3 L'option -p est nécessaire si le dossier parent n'existe pas lors de la création d'un sous répertoire.Lister le contenu d'un dossier: Commande : hadoop fs -ls Exemple : hadoop fs -ls /user hadoop fs -ls /user/monDossierCharger un ou plusieurs fichiers du local à HDFS: Commande : hadoop fs -put Exemple :hadoop fs -put /home/monFichier.txt /user/monDossierExporter un ou plusieurs fichiers de HDFS au local: Commande : hadoop fs -get Exemple : hadoop fs -get /user/monDossier/monFichier.txt /homeCopier un ou plusieurs fichiers dans HDFS: Commande : hadoop fs -cp Exemple : hadoop fs -cp /user/monDossier1/monFichier.txt /user/monDossier2Déplacer un ou plusieurs fichiers dans HDFS: Commande : hadoop fs -mv Exemple : hadoop fs -mv /user/monDossier1/monFichier.txt /user/monDossier2Charger un ou plusieurs fichiers du local à HDFS: Cette commande est similaire à -put Commande : hadoop fs -copyFromLocal Exemple : hadoop fs -copyFromLocal /home/monFichier.txt /user/monDossierExporter un ou plusieurs fichiers de HDFS au local: Commande: hadoop fs -copyToLocal Exemple : hadoop fs -copyToLocal /user/monDossier/monFichier.txt /home Cette commande est similaire à -get Afficher le contenu d'un fichier: Commande : hadoop fs -cat Exemple : hadoop fs -cat /user/monFichier.txt Afficher les dernières lignes d'un fichier: Commande : hadoop fs -tail Exemple : hadoop fs -tail /user/monFichier.txt Supprimer un fichier dans HDFS: Commande : hadoop fs -rm Exemple : hadoop fs -rm /user/monFichier.txt Suppression récursive dans HDFS: Commande : hadoop fs -rmr Exemple : hadoop fs -rmr /user/Tableau récapitulatif des commandes HDFS Import/export de fichier entre HDFS et le local -put -get -copyFromLocal -copyToLocal Déplacer les fichiers -cp -mv -moveFromLocal -moveToLocal Lister le contenu d’un fichier/répertoire -ls -lsr Afficher le contenu d’un fichier -cat -tail Supprimer le contenu d’un fichier/répertoire -rm -rmr Créer un fichier vide -touchz Modification des permissions -chmod -chown -chgrp Statistique -stat
Pour voir la description d’une commande ainsi que ses paramètres il faut utiliser la commande suivante :Commande : hadoop fs -help Exemple : hadoop fs -help stat Résultat: -stat [format] ... : Print statistics about the file/directory at in the specified format. Format accepts filesize in blocks (%b), group name of owner(%g), filename (%n), block size (%o), replication (%r), user name of owner(%u), modification date (%y, %Y)Exemple d’une organisation technique et fonctionnelle des fichiers dans HDFS : HDFS (Cluster Hadoop) Système de fichier Local .dat . .xml . 1 .dat . .xml . 3 4 3’ .dat . .xml . /user/appli/staging /user/appli/archi /user/appli/source .dat .dat .dat .dat 2 .xml . /user/appli/rejet Les étapes : L’arrivé des fichiers sources en format .dat , .csv ou .xml dans des archives compressées en format -gz sur la machine frontale du cluster Hadoop. Cette phase consiste à transférer les données du système de fichiers en local à HDFS Cette phase consiste à déplacer les fichiers de la zone temporaire (staging) au répertoire archive. 3’) Cette phase consiste à appliquer les contrôles des archives pendant la phase 3, par conséquent, les données qui ne respectent pas ces contrôles seront déplacées au répertoire rejet dans HDFS. Enfin, les fichiers qui respectent ces contrôles, ils seront déplacés dans le répertoire source dans HDFS Quiz Quelle est la taille par défaut d’un bloc HDFS. Quelle est la commande permettant d’exécuter des commandes HDFS. Quelle est la commande permettant de créer un dossier dans HDSF. Quelles sont les commandes permettant de transférer des fichiers du local à HDFS. Quelle est la commande permettant de lister le contenu d’un répertoire sous HDFS.