当我们执行`hadoop fs -ls`时,为什么没有列出“/ shared”目录,尽管当我们执行`hadoop fs -ls / shared / table_name`时它是可见的

时间:2017-02-02 06:36:29

标签: hadoop hdfs

当我执行-ls命令时,/shared目录未列出

[cts573151@aster2 ~]$ hadoop fs -ls

drwx------   - cts573151 supergroup          0 2016-12-21 05:30 .Trash
drwxr-xr-x   - cts573151 supergroup          0 2017-02-01 12:28   .sparkStaging
drwx------   - cts573151 supergroup          0 2017-02-02 11:37 .staging
drwxr-xr-x   - cts573151 supergroup          0 2016-12-19 11:40 _sqoop
drwxr-xr-x   - cts573151 supergroup          0 2016-12-12 15:02 externaltables
drwxr-xr-x   - cts573151 supergroup          0 2016-12-20 17:00 inputfiles
drwxr-xr-x   - cts573151 supergroup          0 2016-11-11 10:18 jars
drwxr-xr-x   - cts573151 supergroup          0 2016-12-07 17:05 outputfiles
drwxr-xr-x   - cts573151 supergroup          0 2016-11-29 11:53    pigoutputfiles
drwxr-xr-x   - cts573151 supergroup          0 2017-02-01 14:52 sqlimport
drwxr-xr-x   - cts573151 supergroup          0 2017-02-02 11:36 sqlimport1
drwxr-xr-x   - cts573151 supergroup          0 2016-11-11 14:46 ‘

但是当我尝试使用特定的-ls /shared列出它时,我会收到存储在其中的文件:

cts573151@aster2 ~]$ hadoop fs -ls /shared
Found 2 items
drwxr-xr-x   - cts573182 supergroup          0 2017-02-02 09:56 /shared/emp_sal
drwxr-xr-x   - cts550508 supergroup          0 2016-06-06 18:55 /shared/sampletable

为什么目录没有列出但是可用?

1 个答案:

答案 0 :(得分:2)

那是因为当你在没有指定任何路径的情况下hadoop fs -ls时,所考虑的默认路径是/user/<username>/和目录&amp;列出/user/<username>/内的文件。

作为您提到的文件夹,即&#34; / shared&#34;在根级别,只有在hdfs上显式提供根目录的路径时才会列出它,例如hadoop fs -ls /

您可以通过执行命令hadoop fs -lshadoop fs -ls /user/cts573151来检查此问题。他们两个都应该给你相同的结果。

参考:http://www.slideshare.net/prdp6787/interacting-with-hdfs#20