Есть ли эквивалент `pwd` в hdfs?

Я пытался сделать hdfs dfs -pwd, но эта команда не существует. Поэтому в настоящее время я прибегаю к выполнению hdfs dfs -ls .., а затем hdfs dfs -ls ../...

Я также просмотрел список команд для hdfs dfs, но не видел ничего перспективного.

Есть ли более прямой способ найти абсолютный путь?

Ответы

Ответ 1

hdfs dfs -pwd не существует, поскольку в HDFS отсутствует концепция "рабочего каталога" при запуске команд из командной строки.

Вы не можете выполнить hdfs dfs -cd в оболочке HDFS, а затем выполнить команды оттуда, поскольку и оболочки HDFS, и команды hdfs dfs -cd тоже не существует, что делает идею создания рабочего каталога избыточной.

Ваш домашний каталог всегда является префиксом пути, если он не начинается с /.

Ответ 2

Нет команды -cd, поэтому, я думаю, вы ожидаете, что -pwd вернет домашний каталог.

В соответствии с этим связанным вопросом: Домашний каталог HDFS домашний каталог hdfs всегда /user/<ShortUserName> (он жестко закодирован в источнике).

Ответ 3

Если вы хотите увидеть абсолютный путь в домашнем каталоге, вы можете создать пустой каталог и удалить его, информация может показать вам абсолютный путь.

[[email protected] ~]$ hadoop fs -mkdir t1                                            
[[email protected] ~]$ 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' - это абсолютный путь к каталогу t1

Ответ 4

Нет такой PWD, совместимости с CD в hadoop как unix/linux.

Возможные команды Hadoop:

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

Ответ 5

В утилите оболочки файловой системы hdfs dfs нет эквивалента команде pwd, но здесь есть обходной путь, использующий mkdir и find:

$ hdfs dfs -mkdir xYz
$ hdfs dfs -find / -name "xYz"

(где "xYz" - это неиспользуемое имя файла)

В одной команде:

$ echo $(dirname $(hdfs dfs -rm -R xYz>/dev/null 2>&1;hdfs dfs -mkdir xYz&&hdfs dfs -find / -name "xYz"))