当我执行-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
为什么目录没有列出但是可用?
答案 0 :(得分:2)
那是因为当你在没有指定任何路径的情况下hadoop fs -ls
时,所考虑的默认路径是/user/<username>/
和目录&amp;列出/user/<username>/
内的文件。
作为您提到的文件夹,即&#34; / shared&#34;在根级别,只有在hdfs上显式提供根目录的路径时才会列出它,例如hadoop fs -ls /
您可以通过执行命令hadoop fs -ls
和hadoop fs -ls /user/cts573151
来检查此问题。他们两个都应该给你相同的结果。
参考:http://www.slideshare.net/prdp6787/interacting-with-hdfs#20