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 命令等效的命令,但这里有一个使用mkdirfind 的解决方法:

$ 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 的东西?

从HDFS的写入和读取中,我发现了点东西

相当于“SELECT * FROM (SELECT table_name FROM ...)”的东西?

状态压缩的一些常用东西

C++通过http协议操作hdfs

是否有相当于css中的“初始宽度”的东西