Utilisez le shell HDFS pour gérer les fichiers dans LindormDFS. LindormDFS étant entièrement compatible avec HDFS, vous pouvez employer les commandes standard du shell Hadoop FileSystem pour lister, téléverser, télécharger, supprimer et gérer les autorisations des fichiers.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Téléchargé le client. Consultez la rubrique Télécharger le client
Configuré Apache Hadoop. Consultez la rubrique Configurer Apache Hadoop
Notes d'utilisation
LindormDFS repose sur une architecture haute disponibilité (HA) comportant plusieurs NameNodes. Configurez le basculement automatique afin d'éviter toute interruption d'accès en cas de panne du NameNode principal. Pour plus de détails, consultez la rubrique Configurer Hadoop.
Commandes courantes
Toutes les commandes respectent la syntaxe suivante :
${HADOOP_HOME}/bin/hadoop fs -<command> [options] <args>
Dans les exemples ci-dessous, remplacez ${Instance ID} par l'ID de votre instance Lindorm.
Téléversement de données
put
Copie un ou plusieurs fichiers depuis le système de fichiers local vers LindormDFS. Si - est indiqué comme source, la commande lit l'entrée standard (stdin) et écrit les données dans LindormDFS.
${HADOOP_HOME}/bin/hadoop fs -put test.txt hdfs://${Instance ID}/
copyFromLocal
Fonctionne exactement comme put, mais le chemin source doit obligatoirement être un chemin local.
moveFromLocal
Déplace des fichiers du système de fichiers local vers LindormDFS. Contrairement à put, les fichiers sources sont supprimés une fois la copie terminée.
appendToFile
Ajoute le contenu d'un ou plusieurs fichiers sources locaux à un fichier de destination situé dans LindormDFS.
${HADOOP_HOME}/bin/hadoop fs -appendToFile localfile hdfs://${Instance ID}/remotefile
Traitement des données
cp
Copie des fichiers du chemin source vers le chemin de destination. Lorsque plusieurs chemins sources sont spécifiés, la destination doit être un répertoire.
${HADOOP_HOME}/bin/hadoop fs -cp hdfs://${Instance ID}/src hdfs://${Instance ID}/dst
mv
Déplace des fichiers du chemin source vers le chemin de destination. En cas de déplacement depuis plusieurs sources, la destination doit être un répertoire. Il est impossible de déplacer des fichiers entre différents systèmes de fichiers.
mkdir
Crée les répertoires spécifiés, y compris les répertoires parents manquants, à l'instar de la commande mkdir -p sous Unix.
${HADOOP_HOME}/bin/hadoop fs -mkdir -p hdfs://${Instance ID}/path/to/newdir
ls
Liste les fichiers et les répertoires.
Pour un fichier : renvoie
File name <Number of replicas> File size Modification date Modification time Permissions User ID Group IDPour un répertoire : renvoie chaque enfant direct au format
Folder name <dir> Modification date Modification time Permissions User ID Group ID
${HADOOP_HOME}/bin/hadoop fs -ls hdfs://${Instance ID}/
du
Affiche la taille de chaque fichier présent dans le répertoire ou la taille d'un fichier spécifique.
df
Consulte l'utilisation de l'espace disque.
cat
Copie le contenu d'un fichier vers la sortie standard (stdout).
${HADOOP_HOME}/bin/hadoop fs -cat hdfs://${Instance ID}/myfile.txt
chown
Modifie le propriétaire d'un fichier. Des autorisations de superutilisateur sont requises.
| Option | Description |
|---|---|
-R |
Modifie récursivement la propriété dans toute l'arborescence des répertoires |
chgrp
Modifie le groupe associé à un fichier. Des autorisations de superutilisateur ou la propriété du fichier sont nécessaires.
| Option | Description |
|---|---|
-R |
Modifie récursivement le groupe dans toute l'arborescence des répertoires |
chmod
Modifie les autorisations d'un fichier. Des autorisations de superutilisateur ou la propriété du fichier sont nécessaires.
| Option | Description |
|---|---|
-R |
Modifie récursivement les autorisations dans toute l'arborescence des répertoires |
rm
Supprime un fichier spécifié. Seuls les répertoires vides et les fichiers peuvent être supprimés.
La commande rm déplace le fichier vers le dossier Trash au lieu de le supprimer définitivement. Pour supprimer les fichiers de manière permanente, exécutez expunge afin de vider la corbeille.
${HADOOP_HOME}/bin/hadoop fs -rm hdfs://${Instance ID}/${filename}
expunge
Supprime définitivement tous les fichiers présents dans le dossier Trash.
${HADOOP_HOME}/bin/hadoop fs -expunge
Récupération de données
get
Copie des fichiers depuis LindormDFS vers le système de fichiers local.
| Option | Description |
|---|---|
-ignorecrc |
Ignore la validation de contrôle de redondance cyclique (CRC) sur les fichiers téléchargés |
-crc |
Enregistre les sommes de contrôle CRC avec les fichiers téléchargés |
${HADOOP_HOME}/bin/hadoop fs -get hdfs://${Instance ID}/${filename} .
getmerge
Concatène tous les fichiers d'un répertoire source en un seul fichier de destination local.
${HADOOP_HOME}/bin/hadoop fs -getmerge hdfs://${Instance ID}/srcdir/ localfile.txt
copyToLocal
Fonctionne exactement comme get, mais le chemin de destination doit obligatoirement être un chemin local.
Pour afficher toutes les commandes prises en charge par le shell HDFS, exécutez :
${HADOOP_HOME}/bin/hadoop fs -help
Pour consulter la référence complète des commandes, rendez-vous sur la page Apache HDFS FileSystem shell.