21

您如何通过 Java 列出 HDFS 中某个路径下的所有文件(递归)。我浏览了 API 并注意到 FileSystem.listFiles(Path,boolean) 但是当我初始化它时,我的 FileSystem 实例中似乎不存在该方法。

4

3 回答 3

15

您可以查看org.apache.hadoop.fs.FsShell.ls(FileStatus, FileSystem, boolean, boolean)您的 hadoop 版本的源代码 - 这是您hadoop fs -lsr path从命令行执行 a 时调用的内容

于 2012-06-08T02:00:37.313 回答
14

使用 -R 后跟 ls 命令以递归方式列出文件/目录。

hadoop fs -ls -R Path/Of/File

ls 命令的可能属性是

-d :目录被列为普通文件。

-h "以人类可读的方式而不是字节数来格式化文件的大小。

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

于 2016-07-16T06:32:43.317 回答
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
于 2013-11-27T21:27:29.007 回答