如何在Hadoop HDFS中浏览目录

26

我想在HDFS中进行导航

首先,我查看了"HDFS根目录"中的目录

[cloudera@localhost ~]$ sudo -u hdfs hadoop fs -ls hdfs:/
Found 5 items
drwxr-xr-x   - hbase hbase               0 2015-10-10 07:03 hdfs:///hbase
drwxr-xr-x   - solr  solr                0 2014-06-01 16:16 hdfs:///solr
drwxrwxrwx   - hdfs  supergroup          0 2015-10-08 11:45 hdfs:///tmp
drwxr-xr-x   - hdfs  supergroup          0 2015-04-13 08:26 hdfs:///user
drwxr-xr-x   - hdfs  supergroup          0 2014-06-01 16:15 hdfs:///var

然后我尝试输入其中一个

[cloudera@localhost ~]$ sudo -u hdfs hadoop -cd hdfs:///hbase
Error: No command named `-cd' was found. Perhaps you meant `hadoop cd'

尝试使用“hadoop cd”也没有成功

[cloudera@localhost ~]$ sudo -u hdfs hadoop cd hdfs:///hbase
Exception in thread "main" java.lang.NoClassDefFoundError: cd
Caused by: java.lang.ClassNotFoundException: cd
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: cd.  Program will exit.
请不要建议使用-ls -R(递归)来显示所有文件。
我希望能够使用像cd这样的命令进行导航。
4个回答

43

在hdfs文件系统中不存在cd(改变目录)命令。您只能列出目录并使用它们来到达下一个目录。

您必须手动导航,通过提供完整路径使用ls命令。

hdfs dfs -ls /user/username/app1/subdir/

3
哎呀,那很糟糕。但是这就是现实。谢谢。 - Mike S.

8
hadoop fs –ls /user/scott/

要查看路径中的值列表,我们必须提供完整的路径。除此之外,导航是不可能的。

1
那么针对这个问题,需要执行sudo -u hdfs hadoop fs –ls hdfs:///hbase命令吗? - user7294900

1
你可以使用UI导航到http://<hdfs主机名>:9870/explorer.html#/tmp,或者登录CDH UI,然后单击NameNode URL位置。

NameNode URL location


0

Cloudera伪分布式代码指南 首先使用

       hadoop fs -ls 

命令 然后查看目录,假设有一个名为output的文件夹 因此使用此命令查看output文件夹内部

       hadoop fs -ls ouput

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接