HDFS目录中的文件计数

 翔未央图_971 发布于 2023-02-12 19:45

在Java代码中,我想连接到HDFS中的目录,了解该目录中的文件数量,获取它们的名称并想要读取它们.我已经可以读取文件,但我无法弄清楚如何计算目录中的文件并获取文件名,如普通目录.

为了阅读我使用DFSClient并将文件打开到InputStream中.

3 个回答
  • 你也可以尝试:

    hdfs dfs -ls -R /path/to/your/directory/ | grep -E '^-' | wc -l
    

    2023-02-12 19:47 回答
  • 计数

    Usage: hadoop fs -count [-q] <paths>
    

    计算与指定文件模式匹配的路径下的目录,文件和字节数.输出列为:DIR_COUNT,FILE_COUNT,CONTENT_SIZE FILE_NAME.

    带-q的输出 列为: QUOTA,REMAINING_QUATA,SPACE_QUOTA,REMAINING_SPACE_QUOTA,DIR_COUNT,FILE_COUNT,CONTENT_SIZE,FILE_NAME.

    例:

    hadoop fs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
    hadoop fs -count -q hdfs://nn1.example.com/file1
    

    退出代码:

    成功时返回0,错误时返回-1.

    您可以只使用FileSystem并迭代路径中的文件.这是一些示例代码

    int count = 0;
    FileSystem fs = FileSystem.get(getConf());
    boolean recursive = false;
    RemoteIterator<LocatedFileStatus> ri = fs.listFiles(new Path("hdfs://my/path"), recursive);
    while (ri.hasNext()){
        count++;
        ri.next();
    }
    

    2023-02-12 19:47 回答
  • FileSystem fs = FileSystem.get(conf);
    Path pt = new Path("/path");
    ContentSummary cs = fs.getContentSummary(pt);
    long fileCount = cs.getFileCount();
    

    2023-02-12 19:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有