HDFS:如何递归列出文件?

时间:2012-06-08 00:51:52

标签: hadoop hdfs

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

3 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:5)

使用-R后跟ls命令递归列出文件/导演。

hadoop fs -ls -R Path/Of/File

ls命令的可能属性是

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

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

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

答案 2 :(得分: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