You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计指定HDFS路径下所有时间戳子目录中的总文件数量

HDFS指定路径下总文件数统计命令

有成熟的命令可以实现你的需求,以下两种是生产环境常用的方案:

方案一:hadoop fs -count 命令(推荐,性能更高)

该命令是HDFS原生提供的统计命令,不需要逐行解析文件列表,大文件量场景下速度远快于ls方案:

# 统计所有YYYY-MM-DD格式子目录下的总文件数
hadoop fs -count -R /user/label/202[0-9]-[01][0-9]-[0-3][0-9] | awk '{sum += $2} END {print "总文件数:" sum}'
  • 逻辑说明:
    • -R 代表递归遍历所有子目录
    • 路径后的通配符仅匹配YYYY-MM-DD格式的日期目录,避免统计到同路径下其他非目标目录
    • hadoop fs -count 默认输出第二列为文件数,awk对所有行的第二列求和得到总文件数

方案二:hadoop fs -ls 配合管道统计

该方案灵活度更高,适合需要额外做文件过滤的场景(比如只统计特定后缀的文件):

# 递归列出所有文件,过滤目录行后统计行数
hadoop fs -ls -R /user/label/202[0-9]-[01][0-9]-[0-3][0-9] | grep -v '^d' | wc -l
  • 逻辑说明:
    • grep -v '^d' 过滤掉行首为d的目录行,仅保留文件行
    • wc -l 统计剩余行数,即总文件数

注意事项

如果不需要限制只统计日期格式子目录,直接把路径后的通配符去掉,换成目标根路径即可。如果你的集群开启了回收站功能,统计时注意排除.Trash目录避免计数偏差。


内容的提问来源于stack exchange,提问作者Bowen Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:36:07