hdfs中是不是有相当于`pwd`的东西?
Posted
技术标签:
【中文标题】hdfs中是不是有相当于`pwd`的东西?【英文标题】:Is there an equivalent to `pwd` in hdfs?hdfs中是否有相当于`pwd`的东西? 【发布时间】:2014-02-03 23:05:40 【问题描述】:我尝试执行hdfs dfs -pwd
,但该命令不存在。
所以目前我正在诉诸hdfs dfs -ls ..
,然后是hdfs dfs -ls ../..
。
我还查看了hdfs dfs
的命令列表,但没有看到任何看起来很有希望的东西。
有没有更直接的方法可以找到绝对路径?
【问题讨论】:
Iirc 它在 api 中,但未在命令行运行程序中公开。 【参考方案1】:hdfs dfs -pwd
不存在,因为当您从命令行运行命令时,HDFS 中没有“工作目录”概念。
您不能在 HDFS shell 中执行 hdfs dfs -cd
,然后从那里运行命令,因为 HDFS shell 和 hdfs dfs -cd
命令也不存在,因此使工作目录的想法变得多余。
您的主目录始终是路径的前缀,除非它从 /
开始。
【讨论】:
你知道我确实觉得需要pwd,那是因为有时当我们在hdfs中创建只有当前用户可以访问的活动目录时,hdfs的默认目录为/user_name . 那很不幸 - 我想看看我的主目录的路径是什么。【参考方案2】:如果你想查看主目录的绝对路径,你可以创建一个空目录并删除它,信息可以显示你的绝对路径。
[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】:没有-cd
命令,所以我猜你希望-pwd
返回主目录。
根据这个相关问题:HDFS Home Directory,hdfs 的主目录始终是/user/<ShortUserName>
(在源代码中是硬编码的)。
【讨论】:
【参考方案4】:hadoop 中没有像 unix/linux 这样的 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
【讨论】:
【参考方案5】:在file system shell utilityhdfs 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"))
【讨论】:
【参考方案6】:Hadoop 中没有当前工作目录的概念。 话虽如此,值得注意的是,如果您想了解 Hadoop 系统的目录结构,可以从根目录开始,不断迭代移动到所需目录。
所以从打字开始,观察输出并继续遍历:
hadoop fs -ls /
【讨论】:
【参考方案7】:有 hdfs.pwd() 函数,但遗憾的是您不能从命令行使用它。 HDFS User's Guide
【讨论】:
在您链接的示例中,我看到一个类似于R>
的外壳。你知道我如何访问那个 shell 吗?
它似乎是 Oracle R 连接器,虽然我从未使用过它:link以上是关于hdfs中是不是有相当于`pwd`的东西?的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaScript 中,除了 URL 之外,是不是有类似 glob 的东西?