web-dev-qa-db-fra.com

Existe-t-il un équivalent de «pwd» dans hdfs?

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?

21
merlin2011

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 /.

20
Evgeny Benediktov

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

15
Jerry Huang

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).

14
jrouquie

Il n'y a pas de telle PWD, support de CD dans hadoop comme unix/linux.

Les commandes Hadoop possibles sont

hadoop fs

    -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
6
Ramineni Ravi Teja

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"))
5
user2314737

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

1
LeonardBlunderbuss

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 /

0