我是靠谱客的博主 沉默小海豚,最近开发中收集的这篇文章主要介绍Hadoop性能测试工具一、磁盘IO测试二、Hadoop性能测试(DFSIO),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、磁盘IO测试

1. 测试读速度

方式一:使用hdparm测试
yum install -y hdparm	#下载hdparm
hdparm -tT --direct /dev/sda1	#测试

hdparm参数:
-t 评估硬盘的读取效率(不经过磁盘cache)。
-T 平估硬盘快取的读取效率。

在这里插入图片描述

方式二:使用time+dd测试
time dd if=/dev/sda1 of=/dev/null bs=8k

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

在这里插入图片描述

2. 测试写速度

使用time+dd测试
time dd if=/dev/zero of=test.dbf bs=8k count=300000

其中/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
在这里插入图片描述

二、Hadoop性能测试(DFSIO)

TestDFSIO是Hadoop自带的性能基准评测工具,需要通过执行hadoop-mapreduce-client-jobclient-2.9.2-tests.jar。

cd /opt/hadoop/hadoop/share/hadoop/mapreduce #进入jar包所在路径

测试写性能:

hadoop jar hadoop-mapreduce-client-jobclient-2.9.2-tests.jar TestDFSIO -write -nrFiles 5 -fileSize 128MB

命令说明:向HDFS集群中写入5个128MB的文件

测试结果:
在这里插入图片描述
结果说明:

  1. Total MBytes processed : 总共需要写入的数据量 100MB
  2. Throughput mb/sec :总共需要写入的数据量/(每个map任务实际写入数据的执行时间之和(这个时间会远小于Test exec timesec))==>100/(map1写时间+map2写时间+…)
  3. Average IO rate mb/sec :(每个map需要写入的数据量/每个map任务实际写入数据的执行时间)之和/任务数==>(20/map1写时间+20/map2写时间+…)/1000,所以这个值跟上面一个值总是存在差异。
  4. IO rate std deviation :上一个值的标准差
  5. Test exec time sec :整个job的执行时间

测试读性能

hadoop jar hadoop-mapreduce-client-jobclient-2.9.2-tests.jar TestDFSIO -read -nrFiles 5 -fileSize 128MB

在这里插入图片描述
【执行测试读操作之前需要至少有一次写操作】

删除历史写操作数据

hadoop jar hadoop-mapreduce-client-jobclient-2.9.2-tests.jar TestDFSIO -clean

在这里插入图片描述

最后

以上就是沉默小海豚为你收集整理的Hadoop性能测试工具一、磁盘IO测试二、Hadoop性能测试(DFSIO)的全部内容,希望文章能够帮你解决Hadoop性能测试工具一、磁盘IO测试二、Hadoop性能测试(DFSIO)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部