温馨提示×

centos怎样测试hdfs性能

小樊
38
2026-10-20 23:34:00
栏目: 智能运维

在 CentOS 上测试 HDFS 性能,通常有两种常见方式:Hadoop 自带测试工具(最常用) 和 第三方压测工具(如 TestDFSIO、nload、fio 等辅助)。下面按实际工作中最常用的方法给你说明。


一、使用 Hadoop 自带工具测试(推荐)

1. 环境前提

  • CentOS 已安装 JDK
  • Hadoop 已安装并配置好(HADOOP_HOME)
  • HDFS 服务已启动
  • 当前用户在 HDFS 中有权限

验证 HDFS 是否正常:

hdfs dfs -ls /

2. 使用 TestDFSIO 测试 HDFS 读写性能(最经典)

(1)写性能测试

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO \
-write \
-nrFiles 10 \
-fileSize 1000 \
-resFile /tmp/TestDFSIO_write.log

参数说明:

  • -nrFiles:文件数量
  • -fileSize:每个文件大小(MB)
  • 总写入量 = 10 × 1000MB = 10GB

(2)读性能测试

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO \
-read \
-nrFiles 10 \
-fileSize 1000 \
-resFile /tmp/TestDFSIO_read.log

(3)清理测试数据

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO -clean

(4)查看结果

cat /tmp/TestDFSIO_write.log
cat /tmp/TestDFSIO_read.log

关注指标:

  • Throughput(MB/s)
  • Average IO rate
  • IO rate std deviation

3. 使用 hadoop fs 命令做简单压测

写测试

time hdfs dfs -put /dev/zero /testfile_1g -D dfs.blocksize=134217728

读测试

time hdfs dfs -cat /testfile_1g > /dev/null

适合快速验证网络或磁盘瓶颈。


二、使用 nload / sar 观察系统瓶颈(辅助)

1. 网络带宽

yum install -y nload
nload

2. 磁盘 IO

yum install -y sysstat
iostat -x 1

3. CPU / 内存

top
free -h

三、常用性能分析思路

现象 可能问题
写慢 网络、DataNode 磁盘、副本数
读慢 网络、块分布、客户端位置
CPU 高 压缩、加密、副本均衡
IO 等待高 磁盘性能差

四、常见调优参数(测试时可对比)

dfs.blocksize
dfs.replication
dfs.client.write.packet.size
mapreduce.task.io.sort.mb

如果你愿意,可以告诉我:

  • Hadoop 版本(2.x / 3.x)
  • 单机还是集群
  • 想测 吞吐 / 延迟 / 并发

我可以直接给你一套针对性的测试方案。

0 踩