上一篇
hadoop查询存储空间命令
- 行业动态
- 2025-05-14
- 1
查询Hadoop存储空间使用
hdfs dfs -df
或 hadoop fs -df
命令,可查看HDFS容量、已用空间
Hadoop存储空间查询方法与实践指南
在Hadoop集群运维中,监控存储空间使用情况是保障系统稳定运行的核心任务,本文将系统介绍Hadoop存储空间查询的多种方法,涵盖HDFS命令、操作系统工具及可视化平台,并提供实操案例与避坑指南。
HDFS原生命令查询
命令 | 功能描述 | 适用场景 |
---|---|---|
hdfs dfsadmin -report | 集群容量总览 | 快速获取整体存储概况 |
hdfs dfs -du -h /path | 目录/文件存储分析 | 定位大文件占用情况 |
hdfs fsck / -files -blocks -size | 文件系统健康检查 | 发现丢失块/过期数据 |
集群容量报告
[root@namenode ~]# hdfs dfsadmin -report
关键输出字段解析:
- Capacity: 集群总容量(默认单位KB)
- Used: 已使用空间
- Remaining: 可用空间
- Live/Dead Nodes: 活跃/失效数据节点
- Under replicated: 副本不足的Block数量
示例输出片段:
Configured Capacity: 104857600 (96.00 GB)
Present Capacity: 90112000 (85.75 GB)
DFS Remaining: 54321000 (51.75 GB)
...
Live datanodes (5):
Name: 192.168.1.101:50010 (Hostname: node1)
Hostname: node1
Capacity: 21345600 (20.35 GB)
Used: 12345600 (11.77 GB)
Remaining: 9001000 (8.58 GB)
...
目录存储分析
hdfs dfs -du -h /user/data # 查看目录存储占比 hdfs dfs -ls -R /tmp > tmp_files.log # 导出临时文件清单
典型应用场景:
- 排查
/tmp
目录膨胀问题 - 识别用户目录存储异常
- 清理小文件过多导致的元数据压力
操作系统层存储监控
当HDFS剩余空间与实际磁盘空间不匹配时,需检查DataNode本地文件系统:
单节点存储查询
# 查看HDFS数据存储目录(默认/var/lib/hadoop/hdfs/data) df -h /var/lib/hadoop/hdfs/data # 或检查整个根分区 df -hT / | grep '/$'
集群级存储巡检
for node in node1 node2 node3; do echo "===$node===" ssh $node "df -h /var/lib/hadoop/hdfs/data" done
常见异常场景:
- HDFS剩余空间正常但YARN容器无法创建 → 检查
/var/log/hadoop-yarn
日志目录 - NameNode显示剩余空间充足但实际磁盘已满 → 核查Secondary NameNode存储目录
可视化监控方案
NameNode Web UI
- 访问地址:
http://<namenode_host>:50070/
- 核心模块:
- Utilities > Browse the file system:图形化目录树
- Status:实时集群容量图表
- Datanodes:各节点存储详情
Ambari/Cloudera Manager
- 存储监控面板包含:
- HDFS容量历史趋势图
- DataNode磁盘使用热力图
- 自动告警阈值配置(如使用率>90%)
存储优化实战技巧
大文件定位与清理
# 查找超过10GB的文件 hdfs dfs -ls / | awk '$5+0 > 101024^3 {print $0}' # 删除测试文件 hdfs dfs -rm -r /test/bigfile_.log
回收站管理
# 查看回收站占用 hdfs fsck /user/hive -deleted # 永久清除回收站 hdfs dfs -expunge
存储格式优化
- 启用HDFS透明压缩:
dfs.compression=true
- 调整Block大小:
dfs.blocksize=134217728
(128MB)应对小文件场景 - 开启Erasure Coding:
dfs.ec.policy=RS-6-3
(需Hadoop 3.x+)
故障排查案例
案例1:NameNode显示剩余空间异常
- 症状:
DFS Remaining
骤减但实际磁盘空间充足 - 原因:存在大量未及时清理的编辑日志(edits logs)
- 解决:强制保存命名空间
hdfs dfsadmin -safemode enter; hdfs dfsadmin -safemode leave
案例2:DataNode磁盘满导致写入失败
- 应急处理:
hdfs dfsadmin -setDatanodeFailedTimeout 3600
暂时关闭故障检测 - 根本解决:清理本地缓存目录
/tmp/hadoop-yarn
下的作业临时文件
FAQs
Q1:如何快速查看某个DataNode的存储使用情况?
A1:可通过以下两种方式:
- 使用
hdfs dfsadmin -report
命令,在输出中查找对应节点条目 - 登录目标节点执行:
hdfs df -ls / && df -h
组合查看HDFS与本地存储状态
Q2:HDFS剩余空间正常但作业报错”No space left on device”如何解决?
A2:可能原因及解决方案:
- NameNode元数据耗尽:检查
dfs.namenode.fs-limit-percent
参数(默认95%),扩大元数据存储容量 - YARN本地目录满:清理
yarn.nodemanager.local-dirs
配置的目录(默认/tmp/hadoop-yarn) - 客户端缓存问题:执行`hdfs dfs -refreshCache