1)写测试的原理
2)测试内容:向HDFS集群写10个128MB的文件(3个机器每个4核,2 * 4 = 8 < 10 < 3 * 4 =12)
[hadoop@hadoop103 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Date & time: Fri Jun 17 15:53:28 CST 2022 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Number of files: 10 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Total MBytes processed: 1280 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Throughput mb/sec: 1.66 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Average IO rate mb/sec: 1.71 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: IO rate std deviation: 0.3 2022-06-17 15:53:28,086 INFO fs.TestDFSIO: Test exec time sec: 153.5 2022-06-17 15:53:28,086 INFO fs.TestDFSIO:
注意:nrFiles n
为生成mapTask的数量,生产环境一般可通过hadoop103:8088
查看CPU核数,设置为(CPU核数-1)
Number of files
:生成mapTas数量,一般是集群中(CPU核数-1)。Total MBytes processed
:总文件大小Throughput mb/sec
:单个mapTask的吞吐量 计算方式:处理的总文件大小/每一个mapTask写数据的时间累加和
整个集群吞吐量:生成mapTask数量 * 单个mapTask的吞吐量
Average IO rate mb/sec
:平均mapTask的吞吐量 计算方式:每个mapTask处理文件大小/每一个mapTask写数据的时间全部相加除以task数量
IO rate std deviation
:方差、放映各个mapTask处理的差值,越小越均衡如果测试过程中,出现异常,尝试关闭虚拟内存检测
在yarn-site.xml
中设置虚拟内存检测为false,然后重启Yarn
集群
<!-- 虚拟内存检查,默认为打开,修改为关闭--> <property> <description>Whether virtual memory limits will be enforced for containers.</description> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
3)测试结果分析
由于副本1就在本地(hadoop4),所以该副本不参与测试(如果客户端不在集群节点,那就所有副本都参与计算)
一共参与测试的文件:10个文件 * 2个副本 = 20个
压测后的速度:1.66
实测速度:1.66M/s * 20个文件 ≈ 33.2M/s
三台服务器的带宽:3 * (100Mbps / 8bit) ≈ 37.5M/s
所有网络资源都已经用满。
如果实测速度远小于网络,并且实测速度不能满足工作需求,可以考虑采用固态硬盘或者增加磁盘个数。
1)测试内容:读取HDFS集群10个128M的文件
[hadoop@hadoop102 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB 2022-06-17 16:33:04,291 INFO fs.TestDFSIO: ----- TestDFSIO ----- : read 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Date & time: Fri Jun 17 16:33:04 CST 2022 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Number of files: 10 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Total MBytes processed: 1280 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Throughput mb/sec: 49.1 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Average IO rate mb/sec: 98.43 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: IO rate std deviation: 78.64 2022-06-17 16:33:04,292 INFO fs.TestDFSIO: Test exec time sec: 44.96