统计HDFS文件数量,大小,以及在某范围大小的文件数量

本文介绍了一种统计HDFS中文件数量及小于20M文件数量的方法,利用Hadoop命令结合Python进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

统计HDFS文件数量大小,小于20M文件数量
  • hadoop fs -du -h / # 统计文件大小
  • hadoop fs -count / # 统计文件数量,返回的数据是目录个数,文件个数,文件总计大小,输入路径
  • hadoop fs -ls -R /path/data | grep ^- > ~/data.txt #统计所有文件的信息,过滤文件夹,只统计文件.因为使用ls -l 之后,可以看到文件是”-“开头文件夹是”d”开头
  • 这里写图片描述

这里写图片描述

再写个小python

 import pandas as pd
path='/Desktop/data.txt'
df=pd.read_table(path,delim_whitespace=True,names=[1,2,3,4,5,6,7,8]) # 统计数据一共8列
print(len(df))
df1=df[df[5]<20971520] # 第五列是大小,取小于20M(换算成b)的文件数据
print(len(df1)) # 统计数量
### 如何在HDFS统计文件数量 在Hadoop分布式文件系统(HDFS)中,可以使用 `hdfs dfs -count` 命令来统计指定路径下的文件数量、目录数量以及总字节数。此命令提供了多种选项以便于更灵活地获取所需的信息。 以下是该命令的基本语法及其参数说明: #### 基本语法 ```bash hdfs dfs -count [-q] [-h] <path> ... ``` - `-q`: 显示配额信息。 - `-h`: 使用人类可读的格式显示大小单位(如KB、MB、GB等)[^1]。 #### 统计单个路径中的文件数 如果只想知道某个特定路径下的文件总数,则可以直接运行如下命令: ```bash hdfs dfs -count hdfs://namenode_address/path/to/directory/ ``` 这条语句会返回三列数据:第一列为子目录的数量;第二列为文件数量;第三列为这些文件所占的空间总量(以字节为单位),最后一项则是输入路径本身[^1]。 例如对于下面这个例子来说, ```bash $ hdfs dfs -count /user/example_directory/ 8 10 23456789 /user/example_directory/ ``` 这里表示 `/user/example_directory/` 下有8个子目录、10个文件,并占用约23 MB 的存储空间。 #### 多路径查询 当需要同时计算多个不同位置上的资源数目时,只需简单地追加额外的目标地址即可。比如: ```bash hdfs dfs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2 ``` 这将会分别给出两个远程节点上各自对应文件夹内的详情报告[^1]。 另外需要注意的是,虽然移动操作不会影响到最终的结果集,但如果涉及到重命名或者迁移动作的话还是应该谨慎处理以免造成混淆。例如通过以下方式实现跨目录转移: ```bash hdfs dfs -mv hdfs://source_path/* hdfs://destination_path/ ``` 以上命令能够有效地把源路径里的所有内容迁移到目标位置而不改变它们原有的属性设置[^2]。 最后提醒一点关于权限管理方面的小技巧——如果你遇到因为缺乏适当授权而导致某些功能受限的情况,可能需要调整配置文件来临时关闭安全验证机制。具体做法是在 `$HADOOP_HOME/etc/hadoop/hdfs-site.xml` 中新增一段XML片段并重新启动服务生效[^4]: ```xml <property> <name>dfs.permissions</name> <value>false</value> <description>Disable permissions enforcement.</description> </property> ``` 总之,利用好上述提到的各种工具和技术手段可以帮助我们更加高效便捷地完成日常运维工作当中涉及的大规模数据分析任务!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值