在hdfs中有相当于`pwd`的东西吗?

时间:2014-02-03 23:05:41

标签: hadoop hdfs

我尝试hdfs dfs -pwd,但该命令不存在。 所以目前我正在使用hdfs dfs -ls ..后跟hdfs dfs -ls ../..

我还查看了hdfs dfs的命令列表,但没有看到任何看起来很有希望的内容。

有没有更直接的方法来找到绝对路径?

7 个答案:

答案 0 :(得分:18)

“hdfs dfs -pwd”不存在,因为当您从命令行运行命令时,HDFS中没有“工作目录”概念。

你不能在HDFS shell中执行“hdfs dfs -cd”,然后从那里运行命令,因为HDFS shell和“hdfs dfs -cd”命令都不存在,因此使工作目录的想法变得多余。 / p>

您的主目录始终是路径的前缀,除非它从“/".

开始

答案 1 :(得分:14)

没有-cd命令,所以我猜你希望-pwd返回主目录。

根据这个相关问题:HDFS Home Directory,hdfs的主目录始终为/user/<ShortUserName>(它在源代码中是硬编码的。)

答案 2 :(得分:10)

如果要查看主目录的绝对路径,可以创建一个空目录并将其删除,该信息可以显示绝对路径。

[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'是t1目录的绝对路径

答案 3 :(得分:6)

像unix / linux这样的hadoop中没有这样的PWD,CD支持。

可能的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

答案 4 :(得分:4)

file system shell utility pwd中没有hdfs dfs命令的等效命令,但此处使用mkdirfind进行解决方法:

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

(其中&#34; xYz&#34;是未使用的文件名)

在一个命令中:

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

答案 5 :(得分:1)

有hdfs.pwd()函数,但遗憾的是你无法从命令行使用它。 HDFS User's Guide

答案 6 :(得分:1)

Hadoop中没有当前工作目录的概念。 话虽这么说,但值得注意的是,如果您想了解Hadoop系统的目录结构,则可以从根开始,并不断地移至所需的目录。

因此从键入开始,观察输出并继续遍历: def build_sample_db(): db.create_all() # Add to Parent table parent = Parent() parent.name = "Jack Sparrow" db.session.add(parent) # Add to Children table children_name = ['Hulk','Ironman'] amount = ['300','500000'] children_list = [] for i in range(len(fraudster_name)): children = Children() children.name = children_name[i] children.asset_amount = amount[i] children.parents = parent db.session.add(children) ### Correct me if I'm wrong at formatting the list grandchildren_name = [['Hulk_one', 'Hulk_two', 'Hulk_three'], ['Ironman_one', 'Ironman_two', 'Ironman_three']] gender = [['female','female','male'], ['female','male','male']] ### How do I loop through my grandchildren to put into database db.session.commit() return