00:00
好,接下来我们看一下第十章综合调优,那这里面涉及到内容啊,它既包含了HTSS,还有雅也说三,从三个角度对这个系统进行一个调优,以前呢,我们讲的都是针对于APS,或者针对于MAP6S,以及呢,或者针对于雅恩单独的去调,那我如果如何来从三方面哎综合的去调优呢?比如说第一个问题,小文件问题。假文件问题,它并不是说单独ADS,或者单独60%,单独减N能把这事情解决的,它需要我们全力的一个配合。那好,我们来看一下啊呃,给大家总结一下小文件的一个呃危害以及相应的解决方案。那小文件的危害呢?主要有两个方面,第一个方面呢,小文件过多,它会占用你name no的大量的内存。对吧?不管你这个文件块多小,它都会占用name node150个字节。哎,那这个呢,我们尽可能的要。让这个内漏,哎存储的数据呢,更多一些,OK,那还有一个角度就是从计算角度。
01:06
任何一个小文,它都要开启一个map。默认情况下对吧,那这样呢,会占占用你大量的这个计算资源。白白浪费了啊,好,那既然他有这么两个问题,我们如何来解决呢?给大家总结一下,首先呢,你从数据的源头上。我就尽可能的不让他把小文件上传到ad。如果你源头有小文件,那我把你小文件能不能说合并到一起。或者采用批处理的方式,一批一批的往上传。OK吧,哎,从最源头上尽可能的不让它往A键盘上传,这是从根上解决,那如果这个小文件已经上传到集群上。那我怎么办呢?两个方向,第一个方向呢,存储的方向。存储这一块,我既为了减少它内部的存储空间,我可以把这个小文件呢,归档在一起,采用哈归档的方式,诶前面我们已经讲过了,对吧,好。
02:02
那另一方面呢,我们可以从计算的角度。咱们来学mapb程序的时候,是不是一个combine test input?来解决小文件的,比如说它读取文件啊,它是把这个多个小文件。来放在一起,统一的进行切片。那这样的话,哎,我这个开启卖T的个数就少了。OK吧,那进而呢,我就节省了对应的资源,那当然这个是在有小文件的场景,我才会这样去做。那下面呢,来再学一个新招,那这个新的呢,就是哎,开启Uber模式,实现的是GM重用的一个功能。那这个怎么理解呢?给大家举个场景哈,呃,宋宋老师。对吧,哎,他呢,没事呢,就接客去三里屯接客,对吧,接客的时候呢,他开始接客之前是有一个前置的开始准备工作。对吧,然后开始接货啊,他接客干活的时候呢,他呃开始准备,比如说花了这个十秒,十秒钟可以吧,啊干活呢,花了三秒钟。
03:02
结束战斗。结束完之后还有个收尾工作,收尾还需要十秒钟。比如说整个这个任务下来,23秒钟结束了,但它真正干活的时间只有三秒。然后再接下一个课,又开始十秒钟,然后呢,准备三秒,然后结束又十秒。那孙老师就想啊,那我这个结束和开始的时间,占用了我大量的这个工作时间,我能不能。把这先干掉。哎,从开始准备好,开始之后,下一个下一个下一个对吧,一直干活,一直干活我就不停了。哎,这其实就是这个啊,GM重用的一个效果,比如说某一个线程啊,它开启需要发展的时间,干活的时间非常短,结束的时间又比较长,那我开始和结束的时间都已经比干活的时间长了,那我就不结束了。对吧,一直运行。那下面我们来看一下哈,啊,现在呢,当前集群啊,我们是没有开启Uber模式的啊,我们来跑一个什么程序呢?跑一个word count程序。
04:01
可以吧,来握手放程序,大家都比较熟啊,嗯,这里面还是看一下这个input的路径,有这么三个文件对吧。Output,删掉。我就直接执行了啊,这个还do word count,大家都非常熟。直行,哎,走到这儿之后,你往下看啊,稍等一下。它会蹦出一行来,看这地方说job running in Uber模式more for false是默认是false啊,哎,False的话呢,你看它怎么走啊。稍等他一下。啊,我这个差点内存溢出了啊没事啊,应该没问题,好他执行完毕了,对吧,执行完毕之后呢,我们来到这里面。HIOP1038088进来之后,来到这个第四个任务最上面的点开,然后点它进来之后。看到了吗?哎,它开启了对应的九个容器。
05:03
是这样吗?哎,九个容器,那它开启了九个容器,那下面呢,我让他做一个什么事呢。哎,我让他开启优默模式,开启优默模式那就是在这个map right side下面配置上如下内容,那这个内容都是什么哈,给大家看一下啊,首先第一个。你得将这个Uber模式开启。对吧,啊把它使呢,那它默认什么状态呢?默认是关闭的。来,来到。嗯,这里吧。对吧,哎,当前的这个Uber模式默认是关闭的。OK,那再来往下看,看下一个参数,说Uber模式当中最大的map test数量可向下修改,哎,最多呢,你可以重复运行多少次呢?可以重复运行九次,你说这个接盘重用的这次数最多九次。来看一下哈。
06:04
看了吗?哎,这值是九,说这什么含义啊?说thhol for number of maps啊,Beyond which job is contained啊,Too big for the,这个under under,这个task option啊,然后under me,说user这个用户啊,可以overright,也是重写这个值,但是记住only哒啥意思呢?你只能比这个九小,你说你重复的次数啊,只能小于九次。不能大于90。OK吧,这是这个值的参数。只能往小了改。再一个呢,是Uber模式当中最大的数量。也就是说,它最多可以配置多少个radio数量呢?看一下。最多只允许配。啊,只配置一个,那一个的话,那能不能往上修改呢?看这块说user may or write this value but only大只能往下写,那你修改的话,那你可以不选择reduce,没有可以生成零,要么就是一个啊不能说改成两个,改成三个。
07:03
OK吧,这是这块。那再来。说Uber模式中最大的输入输输入数据量,默认的是按照这个值可向下去改,什么意思,把它拿回来?在里面。呃,说map job啊,这个Uber模式,它能够处理的数据量是多少?每一个map里面说这个数据量呢,嗯,看这个哈,Beyond or this job contain too big,呃,If no value,看这块啊,说如果没有值,那当前数据没有值啊,Is,特殊的那d FS block size这个值呢,一直右子的ID fot就把它的值作为默认的值,那它是多少?还记得吗?块大小。对不对,块大小的默认是128兆,OK吧,啊,然后B算出这个特殊的一个defpot值,In这个里面啊,你可以进行修改,呃,Note这个ADS啊,说这个还最后一句话很关键,说user may right this value but only。
08:05
比如说你默认的块大小呢,是128兆,那你要想把这个值调小的话,比如说每迈迈步探索里面处理的数据量要小,那你只能小于128,小于你的块大小不能往上了调。OK吧,这是这块,因为我们这个场景啊,你看它所有的值都是只能往下调,不能往上调,因为它毕竟处理的是哎小文件的场景。啊,跟那个正常大数据它不太一样,OK吧,行,那把这个值啊给他。放到这个map。CDTC逗啊,Vm map set啊,这个里面啊。找到末尾O插入进来。粘贴。呃,分发一下SSNC。好,分发完之后啊,不用这个重启啊,直接这个正常执行就行了。完了我们再执行一下这个word count程序。把这个二呢改成三,这个路径OK。
09:00
事情。你看一下,马上观察一下空台这个变化啊。看到吗?这块说这个Uber模式是不是已经是错了啊,已经开始执行了哈,你看执行的速度还比较快,我们来看一下这个地方。然后你退回来。现在呢,我们来到这个五的啊,对吧,刚执行完的,呃,执行完之后点看一下这块。总共几个容器啊?上一个案例我们是九个容器,现在呢,是不是只有一个容器,为什么它只有一个容器?这就是宋老师那个工作原理啊。哎,他一直开始对吧,开始十秒钟,然后结束十秒钟,中间它一直共用,大家共用这个容器,根本就没有退出。能懂吗?哎,所以说这个效率呢,对于小文件要高一些。OK,这就是开启这个U波模式,哎,减少这个,呃,这个开启GM重用OK吧,哎,减少这个开关GM的这个时间。这是小文件的一个,呃,处理啊,一个是Uber模式,还有呢,一个是command test in bookma以及hard归档,这个呢是在我们之前的案例当中讲过了,在最从根本上呢,就是尽量避免小文件上传到A上。
我来说两句