【问题标题】:HDFS: How do you list files recursively?HDFS:你如何递归地列出文件?
【发布时间】:2012-06-08 00:51:52
【问题描述】:

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

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

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

    【讨论】:

    • "-lsr" 被贬低,使用:hadoop fs -ls -R PATH
    【解决方案2】:

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

    hadoop fs -ls -R Path/Of/File
    

    ls 命令的可能属性是

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

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

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

    【讨论】:

      【解决方案3】:
      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
      

      【讨论】:

        猜你喜欢
        • 2015-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 1970-01-01
        • 2017-07-20
        相关资源
        最近更新 更多