J'ai essayé de faire hdfs dfs -pwd
, mais cette commande n'existe pas. Donc, actuellement, je recourt à faire hdfs dfs -ls ..
suivi par hdfs dfs -ls ../..
.
J'ai également consulté la liste des commandes de hdfs dfs
mais n'a rien vu de prometteur.
Existe-t-il un moyen plus direct de trouver le chemin absolu?
hdfs dfs -pwd
N'existe pas car il n'y a pas de concept de "répertoire de travail" dans HDFS lorsque vous exécutez des commandes à partir de la ligne de commande.
Vous ne pouvez pas exécuter hdfs dfs -cd
Dans HDFS Shell, puis exécuter des commandes à partir de là, car les commandes HDFS Shell et hdfs dfs -cd
N'existent pas également, ce qui rend l'idée de répertoire de travail redondante.
Votre répertoire personnel est toujours le préfixe du chemin, à moins qu'il ne commence par /
.
Si vous voulez voir le chemin absolu du répertoire personnel, vous pouvez créer un répertoire vide et le supprimer, les informations peuvent vous montrer le chemin absolu.
[test@test ~]$ hadoop fs -mkdir t1
[test@test ~]$ hadoop fs -rm -r t1
17/02/14 10:00:46 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://nameservice1/user/test/t1' to trash at: hdfs://nameservice1/user/test/.Trash/Current
'hdfs: // nameservice1/user/test/t1' est le chemin absolu du répertoire t1
Il n'y a pas -cd
commande, donc je suppose que vous vous attendez à -pwd
pour retourner le répertoire personnel.
Selon cette question connexe: HDFS Home Directory , le répertoire personnel de hdfs est toujours /user/<ShortUserName>
(il est codé en dur dans la source).
Il n'y a pas de telle PWD, support de CD dans hadoop comme unix/linux.
Les commandes Hadoop possibles sont
-appendToFile
-cat
-checksum
-chgrp
-chmod
-chown
-copyFromLocal
-copyToLocal
-count
-cp
-createSnapshot
-deleteSnapshot
-df
-du
-expunge
-get
-getfacl
-getfattr
-getmerge
-help
-ls
-mkdir
-moveFromLocal
-moveToLocal
-mv
-put
-renameSnapshot
-rm
-rmdir
-setfacl
-setfattr
-setrep
-stat
-tail
-test
-text
-touchz
-usage
Il n'y a pas d'équivalent de la commande pwd
dans tilitaire Shell du système de fichiershdfs dfs
, mais voici une solution de contournement utilisant mkdir
et find
:
$ hdfs dfs -mkdir xYz
$ hdfs dfs -find / -name "xYz"
(où "xYz" est un nom de fichier inutilisé)
En une seule commande:
$ echo $(dirname $(hdfs dfs -rm -R xYz>/dev/null 2>&1;hdfs dfs -mkdir xYz&&hdfs dfs -find / -name "xYz"))
Il y a la fonction hdfs.pwd (), mais vous ne pouvez malheureusement pas l'utiliser à partir de la ligne de commande. Guide de l'utilisateur HDFS
Il n'existe aucun concept d'un répertoire de travail actuel dans Hadoop. Cela étant dit, il convient de noter que si vous souhaitez comprendre la structure de répertoires du système Hadoop, vous pouvez commencer votre chemin à partir de la racine et continuer à vous déplacer de manière itérative vers le répertoire souhaité.
Commencez donc par taper, observez la sortie et continuez à parcourir: hadoop fs -ls /