Ubuntu环境下Hadoop性能测试指南
hadoop version验证Hadoop安装,通过jps查看各组件进程是否启动。README.txt或自定义小文件;hdfs dfs -put local_file /test/input)。TestDFSIO是Hadoop自带的基准工具,通过MapReduce作业模拟并发读写,适合快速评估HDFS性能。
# 清理历史测试数据(避免干扰)
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -clean
# 执行写入测试(生成10个1GB文件,并发执行)
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -write -nrFiles 10 -size 1GB
参数说明:
-nrFiles:生成的文件数量;-size:单个文件大小(如1GB、128MB);-write:指定写入测试模式。结果解读:
重点关注Throughput mb/sec(总吞吐量,MB/s)、Average IO rate mb/sec(平均IO速率,MB/s)、Test exec time sec(测试执行时间,秒)。
# 执行读取测试(读取之前写入的10个1GB文件)
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -read -nrFiles 10 -size 1GB
参数说明:
-read:指定读取测试模式。注意事项:
读取测试前必须已完成写入测试(或手动上传数据),否则会报错。
HiBench提供多种测试用例(如排序、WordCount、Hive查询),适合评估Hadoop集群的综合性能。
# 克隆HiBench仓库(或下载源码)
git clone https://github.com/intel-hadoop/HiBench.git
cd HiBench
# 使用Maven编译(根据Hadoop版本调整参数,如Hadoop 3.2)
mvn -Phadoopbench -Dhadoop.version=3.2.4 clean package -e
编辑conf/hadoop.conf文件,设置Hadoop安装路径:
hadoop.home=/path/to/hadoop
编辑conf/frameworks.lst文件,选择需要测试的场景(如sort、wordcount、hive),例如:
sort
wordcount
# 执行所有选中的测试用例
./bin/run_all.sh
结果解读:
HiBench会生成详细的报告(位于HiBench/report目录),包含吞吐量、执行时间、资源利用率等指标。
fio是灵活的I/O测试工具,用于评估磁盘的读写速度、延迟等底层性能,适合排查存储瓶颈。
sudo apt-get update
sudo apt-get install -y fio
fio -filename=/mnt/hdfs/data/test.log -direct=1 -iodepth=1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_read
参数说明:
-filename:测试文件路径(建议使用HDFS数据目录);-direct=1:绕过缓存,直接测试磁盘;-rw=read:测试读取性能;-bs=16k:块大小(16KB,符合HDFS默认块大小);-numjobs=10:并发线程数。fio -filename=/mnt/hdfs/data/test.log -direct=1 -iodepth=1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_write
参数说明:
-rw=write:测试写入性能。结果解读:
重点关注read/write bandwidth(读/写带宽,MB/s)、read/write IOPS(读/写IOPS)、latency(延迟,ms)。
mapreduce.job.maps参数)或网络带宽不足。mapreduce.map.memory.mb、mapreduce.reduce.memory.mb);mapreduce.job.maps、mapreduce.job.reduces);通过以上步骤,可全面评估Ubuntu环境下Hadoop集群的性能,并针对性优化提升处理效率。