HDFS:如何递归列出文件?

21

如何通过Java在HDFS下的特定路径中递归地列出所有文件。我查阅了API,发现FileSystem.listFiles(Path,boolean)这个方法,但是在我初始化它的实例时,貌似该方法并不存在。

4个回答

16
您可以查看适用于您的Hadoop版本的org.apache.hadoop.fs.FsShell.ls(FileStatus,FileSystem,boolean,boolean)的源代码 - 当您从命令行执行hadoop fs -lsr path时,就会调用该方法。

3
"-lsr"已经过时,请使用:hadoop fs -ls -R PATH 替代。 - 15412s

14

使用-R参数跟随ls命令来递归列出文件/目录。

hadoop fs -ls -R Path/Of/File

ls命令可能的属性有

-d:列出目录而非目录中的内容。

-h:以易于理解的方式格式化文件大小,而不是以字节数表示。

-R:递归地列出目录的内容。


0

使用带有-R选项的hdfs cli

hdfs dfs -ls -R /path/to/

0
hadoop-user@hadoop-desk ~/hadoop
$ bin/hadoop fs -lsr /user/someone_else/myfiles

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/file1.txt

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/file2.txt

drwxr-xr-x   - hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/subdir

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/subdir/anotherFile.txt

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