Quelques commandes courantes pour HDFS
Pour ces commandes, il existe 2 syntaxes possibles:
- Avec
hadoop
: avec une syntaxe du typehadoop fs <commande>
, - Avec
hdfs
: la syntaxe esthdfs 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 localhdfs dfs -moveFromLocal
pour déplacer du volume local vers HDFShdfs 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