Hadoop-之性能测试(基准测试)
Hadoop的基准测试一般是在集群搭建完成之后,在各个参数设置合理的情况下进行基准测试(有点类似于kafka的读写性能测试),基准测试比较耗时间,因为涉及到集群的性能压榨,那么下面就开始进行基准测试吧。
测试内容如下。
- 写性能IO测试
- 读性能IO测试
- Mapreduce计算能力测试
1 写性能测试
#向HDFS写10个128M的文件,其中10根据集群的规模来测试,集群同时能跑多少个map task
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB
执行日志大致如下:
21/01/10 20:14:54 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
21/01/10 20:14:54 INFO fs.TestDFSIO: Date & time: Sun Jan 10 20:14:54 CST 2021
21/01/10 20:14:54 INFO fs.TestDFSIO: Number of files: 10 #处理的文件个数
21/01/10 20:14:54 INFO fs.TestDFSIO: Total MBytes processed: 1280 #总共处理多少MB
21/01/10 20:14:54 INFO fs.TestDFSIO: Throughput mb/sec: 141.02 #每秒的吞吐量
21/01/10 20:14:54 INFO fs.TestDFSIO: Average IO rate mb/sec: 267.29 #平均IO
21/01/10 20:14:54 INFO fs.TestDFSIO: IO rate std deviation: 120.45
21/01/10 20:14:54 INFO fs.TestDFSIO: Test exec time sec: 35.55 #执行时间
2 读性能测试
#向HDFS读取10个128M的文件
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB
执行日志大致如下:
21/01/10 20:14:54 INFO fs.TestDFSIO: ----- TestDFSIO ----- : read
21/01/10 20:14:54 INFO fs.TestDFSIO: Date & time: Sun Jan 10 20:14:54 CST 2021
21/01/10 20:14:54 INFO fs.TestDFSIO: Number of files: 10
21/01/10 20:14:54 INFO fs.TestDFSIO: Total MBytes processed: 1280
21/01/10 20:14:54 INFO fs.TestDFSIO: Throughput mb/sec: 141.02
21/01/10 20:14:54 INFO fs.TestDFSIO: Average IO rate mb/sec: 267.29
21/01/10 20:14:54 INFO fs.TestDFSIO: IO rate std deviation: 120.45
21/01/10 20:14:54 INFO fs.TestDFSIO: Test exec time sec: 35.55
3 清除测试产生的数据,减少磁盘的消耗
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar TestDFSIO -clean
4 MR计算性能测试
MR的这个测试比较耗费时间,一般大概是1个多小时,主要是通过随机数排序来测试性能,测试流程主要分为以下几个步骤
- 使用randomwriter来产生随机数,每个节点运行10个map任务,每个map产生约1G的二进制随机数
- 执行sort程序
- 验证数据是否真正排好序
# 1、randomwriter来产生随机数
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar randomwriter random-data
# 2、执行sort程序
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar sort random-data sorted-data
# 3、验证数据是否真正排好序
hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.7-tests.jar testmapredsort -sortInput random-data -sortOutput -sorted-data