00:00
好,上节课啊,我们把这个环境已经准备好了,那接下来呢,我们就开始真正的去测试一下HDFS的写性能。那首先呢,我们来看一下这块啊。这块呢叫hiop价啊,然后呢,OBD model hiop center3opop这个路径大家熟悉吗。以前我们在学world count的时候,是不是这里面有一个呃world count程序啊,对吧,啊一个张,那现在呢,我们不用这个了啊用哪个呢?用这个do Mar哎,客户端啊,然后test的S,其实呢,是用来测试用的假包。那这个既然它是S,那就说明它有多个案例。对吧,哎,那多呢,这里面我取的是test,哎dfso,比如说测它的读写性能。那既然它是测的读写性能,那首先我们测的是写,那后面还有对应的读,OK吧,那再往后呢,这里比如说哎,那我测试的写性能,我说要向他这个上写文件呢。那比如说这里面我写的就是十个文件。
01:00
那写十个文件,它底层是怎么工作的呢?来给大家介绍一下哈,那比如说这有十个文件好吧,一二十啊十个文件,那十个文件在底层啊,它是用十个map task来读取每一个文件。OK吧,哎,读完之后他向HDS进行一个写入操作。写入的过程当中,它会记录两个信息,一个呢是记录每一个map的写入时间。比如说我上传的时候用了多长时间。还有一个呢,是它的平均速度。那平均速度怎么算出来呀?你每一个文件有对应大小,比如说128兆,然后时间也有,那时候128兆除以对应的这个时间,得到的是不是这个平均速度啊。哎,这样就得到了啊,每一个节点都是一样的,那得到之后,它会将每一个节点的写入时间和对应的这个哎,平均速度放到哪里啊,哎,记住它会把它放入到reduce task。聚合到这里面去。
02:01
那聚合到这里面去,它要干什么事儿呢?它两种算法,第一种算法呢是哎,所有的数据量累加,比如说这里有十个文件,对吧,每一个128兆,那我会乘以十总大小,然后呢,总时间,总时间怎么算?每一个map t向HT写入的时间,我都给它记录下来,记录下来。然后累加乘对应的总时间,这样一除,是不是就是整个的一个平均速度啊。好,这是一种算法,那接下来它还有另一种算法,另一种算法呢,是它这里面每一个map是不是已经提前算好了一个平均速度啊啊V。然后V2第三。他会把每一个算好的平均速度放到这儿。然后累加完之后除以十。相当于是,哎,这边先算好了之后当然是。哎,这是两种算法啊,两种算法。行,那了解一下,那接下来我们继续往下看啊,那这边呢,就是设置十个文件,那这块为什么要设置十个文件呢?我设置两个设置三个行不行呢。
03:02
那要注意,那正常情况下测试这个文件个数啊,我们一般呢,是等于集群的CPU总和数减一。哎,什么含义呢?你看一下我们那个现在这个每一个节点啊,它CPU的一个核数哈,右键设置。啊,你看这里面处理器的核数是不是四啊,哎,其实每一个节点都是四哈,我就不大家看了,那好,那相当于是它是四,它是四,它是四,如果是三台机的话啊,102103104。三台机器,每一个都是四个核。那四个盒,如果这块我这个文件我只设置两个。我设置一个吧,我设置一个设置一个的话呢,是不是只有一台机器能够运行这个ma,因为你就一个核嘛。而且你就一个文件,那你是不是测不了这个103104对应的这个写数据的性能了,我希望呢能都给测试到,那好,那比如说我测试我上传五个文件。
04:01
那是不是就至少能选择两台服务器进行一个工作啊,对吧,你CPU核总共是这个啊,每台单点是四个嘛。对吧,那就需要两台机器进行测试,那好,那如果说我这个对应的这个文件个数啊,只要它大于八。大于八,那是不是这三台机器都能够测到它对应的显性能啊啊,所以说这块呢,就是只要你这个文件个数大于你这个,呃,其中某两台的标口数就可以,那比如说这里面可以设置。呃,是九吧啊,九十十一是不是都可以啊,那为什么不设置12呢?因为你正常这个程序运行的时候,还需要占一个C核数啊,所以说你留一个,那其他的九到11都可以啊,所以说这里面我们设置的是十。好,接下来呢,我们就来实际的测试一下啊。看一下这个对应的效果。执行。他这个执行时间啊,要稍微长一点。看一看这个测试结果是不是我们想要的啊?
05:01
如果不是我们想要的,看看会出现什么问题。现在呢是卖零卖50。好,执行完毕了,执行完毕之后,我们把这个图呢定出来看一下。听出来大家看一下啊,这里面呢,对应的这个值,首先呢,NUMBERONE10就说十个文件。然后呢,这是总大小啊,总大小多少呢?哎,是十乘以128兆,哎一共呢,是1280兆啊这么多,那好,那下面这两个什么含义呢。按捺回家这块这个呢,其实就是啊,我们把这个图往上一点啊。来看一下。它的含义就是将诶,所有文件上传的写入时间累加一起放在这儿,然后呢,所有文件总大小累加在一起放在这一相除得到的那个平均值。那下一个值呢,下一个值是它。它呢是怎么得到,哎,它是呢,是每一个节点上传对应的平均速度,然后呢都加在一起,然后上传到这除以十,哎是这个结果,哎,它俩还有一定偏差,那下面这个呢,下面这个叫方差。
06:15
啊,什么叫方差呀,哎,就是这个离你这个主中轴线相当于一个偏差率。哎,是这么一个情况啊,之前我们学数学的时候啊,学过一些啊,当然了不会这个也没关系啊好,那现在这里面大家看一个值,呃,跟我这个以前这个测试的还有一定的区别。你看这里面是1.6.1,这是1.9,然后我现在呢,是157198差了这么多。这个东西怎么看呢?说有同学说这个好,还给我看不太懂,说这个1.611.9,然后这是157198是啥意思啊。来看一下啊,看一下这里面的解释。看这张图啊。这张图我们呢,这是三台服务器对吧,102103104。
07:01
OK,好,我们这是本地文件,然后正常情况下默认是不是有三个副本啊。按摩有三个副本,那三个副本走网络传输的,是不是只有这两个是走网络传输啊?然后默认的是有一个,那只有本地,那不是网络,那我十个文件,其实走网上传输的是不是那两个副本啊,乘以等于20。但是大家思考一个问题啊,思考有什么问题呢?我们之前将这个副本设置为几个。我们副本数设置为。一呀。你副本设置一的话,那它会走网络吗?哎,其实现在呢,这种情况你看到的结果它是没有走网络的情况,就是你硬盘实际的一个读写速度,那实际的读写速度,我们的硬盘是157兆每秒。哎,另一个呢,这个要走这个有点偏差,这个呢是哎198啊,原因是因为我这是一个固态啊,相对来说速度要快一些啊,将近这个呃,200兆每秒左右。那我要想真正的测试得到压测这个效果怎么办?你得将这个副本数设置为三。
08:04
哎,C为三,那我们为了看到这个现象啊,我给大家测试一下啊,然后呢,一会儿我们再来看。那个非常简单啊。我们先把集群呢给它停掉,HDP啊到停。停掉之后修改一下配置。我们当初把它设置成副本为一,是为了节省收盘空间啊。啊,我们c do OBD model开do ETC开do旁。进来VMHDFS。这个是副本唯一。给它改成三。然后呢,SSYNCHTS分发。好,现在呢,就已经OK了,OK了,我们再启一下集群。大。其实这个操作比较简单啊。啊,等它启动。
09:00
然后呢,我们把这个命令。再拿过来准备执行啊。看一下我两次的一个对比结果。好,那下面呢,我把这个再执行一遍。好,运行完毕了啊,那这次呢,我们再截一张图看一下。哎,我们修改完三个副本之后,你会发现现在这个值啊,跟我们这个这个word文档上截图呢,就有点儿类似了。看一下对应的值啊,对比一下,那你看我这里面呢是1.66,你看1.6.1,这呢1.7.6,这是1.9啊,那我们来算一下啊,看一下这回能不能跟我们的解释是对应上的。
10:10
这块比如说最开始的时候呢,你这呢是走的一个副本,那一个副本呢,它就不走网络,直接从本地来读取,那么它的速度啊,就是跟你的硬盘速度是一样的,那现在呢,我给它改成了三个副本,那他就从这个副本里面啊去读,那就相应来说他要走网络。那现在一共呢,我们说设置的是十个文件,但实际走网络的是不是只有两个副本啊?哎,那乘以完之后其实就是20个文件啊,20文件,那20个文件压缩后的速度是多少,看我们这个。我这里面是1.66吧,哎,这个值呢是1.66 OK,那如果你是1.66的话,那1.66乘以20个文件等多少算一下。1.66乘以20。等于是不是33兆每秒左右啊,哎,33兆每秒左右,那么我们一共是三台服务器,那每台服务器的带宽是不是12.5啊哎,三台加在一起的话呢,是哎,约等于30兆左右,那我们现在呢,是32.5啊,其实差不太多啊,差不太多啊,基本上呢,就是相当于啊啊你的网络带宽多少,那么我现在的读写速度就是多少。
11:20
啊,因为它这个硬盘虽然说你能达到这个200兆每秒,但是受这个网络啊,给你限制住了,这也要注意啊。这大要注意啊,说如果实测的这个速度啊,远远小于网络啊,并且呢,实测速度不能满足工作需求,可以考虑增加呃固态硬盘,比如说网络这块,如果不受限的情况下,那你就只能考虑说由机械硬盘增加到固态硬盘,那你这个读写速度呢就会快。啊,你无赖乎影响你的速度就两个方面嘛,一个是硬盘,一个是对应的网络啊。嗯,这是这块,那这里面还有一个说明啊,说如果客户端不在集群节点,那么就三个副本都要参与预算,你说刚才我这一块计算的时候,我是不是只算两个副本啊,因为本地这个没算。
12:06
因为我提交这个命令还多少加包是不是在这个本地这个客户端上进行执行的,但是在实际的工作当中啊,有可能有这种场景,你这个客户端呢,不在这个集群内部。那在外面,那外面访问的话,那任何一个访问是不是都需要走网络呀,所以说你刚才那公司里面就得变成三了啊,这个要指导一下啊啊这个呢,就是哈多肌群的血功能的一个压测。
我来说两句