当前位置:首页 > 行业动态 > 正文

hadoop查询存储空间命令

查询Hadoop存储空间使用 hdfs dfs -dfhadoop 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:可通过以下两种方式:

  1. 使用hdfs dfsadmin -report命令,在输出中查找对应节点条目
  2. 登录目标节点执行: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
0