Commandes shell courantes pour HDFS

Quelques commandes courantes pour HDFS

Pour ces commandes, il existe 2 syntaxes possibles:

  • Avec hadoop: avec une syntaxe du type hadoop fs <commande>,
  • Avec hdfs: la syntaxe est hdfs dfs <commande>.

Cette commande sont proche de celles utilisées par le shell linux comme ls, mkdir, rm, cat, etc…

Pour lister le contenu d’un répertoire

hdfs dfs -ls <chemin du répertoire>

Par exemple:

hdfs dfs -ls /
hdfs dfs -ls /user  # pour voir le contenu du répertoire "user"
Found 2 items
-rw-r--r--   1 hduser supergroup    3324334 2017-09-16 12:00 /user/135-0.txt
-rw-r--r--   1 hduser supergroup    3359550 2017-09-16 12:01 /user/2600-0.txt

On peut utiliser aussi:

hadoop fs -ls /user

Pour afficher le contenu d’un fichier


hdfs dfs -cat <chemin du fichier>

Par exemple:

hdfs dfs -cat /user/135-0.txt

On peut utiliser:

hadoop fs -cat /user/135-0.txt

Pour créer un répertoire

hdfs dfs -mkdir <chemin du nouveau répertoire>

Par exemple:

hdfs dfs -mkdir /user/output

Pour copier un fichier sur HDFS

On peut utiliser:

hdfs dfs -put <chemin du fichier source> <chemin du fichier destination sur HDFS>

La commande suivante est réservé seulement au fichier locaux:

hdfs dfs -copyFromLocal  <chemin du fichier source> <chemin du fichier destination sur HDFS>

Par exemple:

hdfs dfs -put TextFile.txt /user

ou

hdfs dfs -copyFromLocal TextFile.txt /user

Les syntaxes équivalentes avec hadoop sont possibles:

hadoop fs -put <chemin du fichier source> <chemin du fichier destination sur HDFS>
hadoop fs -copyFromLocal <chemin du fichier source> <chemin du fichier destination sur HDFS>

Pour effectuer un copie de fichier

hdfs dfs -cp <chemin du fichier source sur HDFS> <chemin du fichier destination sur HDFS>

Par exemple:

hdfs dfs -cp /user/TextFile.txt /user/output
hdfs dfs -cp /user/TextFile.txt /user/TestFile2.txt

Avec hadoop:

hadoop fs -cp /user/TextFile.txt /user/output
hadoop fs -cp /user/TextFile.txt /user/TestFile2.txt

Pour récupérer un fichier sur HDFS

hdfs dfs -get <chemin du fichier sur HDFS> <chemin du fichier en local>

Par exemple:

hdfs dfs -get /user/TextFile2.txt 
hdfs dfs -get /user/TextFile2.txt LocalTextFile2.txt

Cette syntaxe est réservée aux fichiers locaux:

hdfs dfs -copyToLocal /user/TextFile2.txt

ou

hadoop fs -get /user/TextFile2.txt
hadoop fs -copyToLocal /user/TextFile2.txt

Les mêmes syntaxes existent pour effectuer des déplacements:

  • hdfs dfs -moveToLocal pour déplacer de HDFS vers le volume local
  • hdfs dfs -moveFromLocal pour déplacer du volume local vers HDFS
  • hdfs dfs -mv pour effectuer des déplacements dans HDFS

Pour supprimer un fichier

hdfs dfs -rm <chemin du fichier sur HDFS>

Par exemple:

hdfs dfs -rm /user/TextFile2.txt
Deleted /user/TextFile2.txt

ou

hadoop fs -rm /user/TextFile2.txt

Pour supprimer un répertoire

Si le répertoire est vide, on peut utiliser comme sur le shell rmdir:

hdfs dfs -rmdir <chemin du répertoire vide>

Par exemple:

hdfs dfs -rmdir /user/output2

Si le répertoire contient des fichiers:

hdfs dfs -rm -r <chemin du répertoire>

Par exemple:

hdfs dfs -rm -r /user/output

Avec hadoop:

hadoop fs -rmdir /user/output2
hadoop fs -rm -r /user/output

Leave a Reply