00:01
好,那接下来的两个优化方案呢,之前我们都已经提到过了,一个分区,一个分统啊,就是细节的一个操作呀,还有分统的抽号查询啊,对吧,还有分区怎么分区,对二级分区,多级分区啊等等的创建,呃,添加分区,删除分区这一套啊都都要有,而且还有一个就是往分区表里边插入数据,假如说那种静态分区,我们优先选择哪种。不是不是动静态的问题啊,就是说之前我们讲的往分区表里面插入数据的方式不很多吗。有漏的色色的也可以吧,色的也可以,还有就这两种呢,是数据和分区同时干什么?建立的,但在导数的同时,帮我们把这个原数据也给它补充完整了吧,还有另外个我们可以干什么事?
01:02
先创建文件夹,然后铺的数据成交对吧,之后还有两分两套去做吧,不是两步啊,是两种方法都可以做,第一种是我们所说的什么修复,第二种呢。漏的就不提了,漏的直接就放在上面了,这边还可什么爱的分区对吧,把分区给他添加回来,因为我们之前就提到过一个汉要能读到数据的一个前提,就是说原数据和实际的数据都要有的时候,它就会什么。他就能读到,但是你直接make给电压,然后再铺的这种方式呢,只有什么实际的数据,没有原数据信息啊,没有原数据是这个意思啊,那接下来呢,我们看一下九点四点MR这边的一个优化。MR这句话其实大部分东西,什么小文件合并啊,复杂文件map等等这些东西啊,呃,在MR的时候都讲过,那我们稍微看一下,第一个叫合理数设置数。
02:02
其实我也讨厌讲这个东西啊。讲这两个字合理,到底什么是合理,对吧?这个东西就是很一个很抽象的东西,但是他确实不是说在生产环境当中,我们所有的任务都设置成1000个卖宝,它是最好的,没有这个数据,如果说有一家公司说哎,500个卖网。就是最好的,性能最优的时候。不可能吧,对吧,啊不可能啊,就这意思就不可能,因为它是根据数据量来的,因为我们知道对吧,好,那合理设置,我们知道map数越多,它第一个阶段的必行度越高啊,那是不是越多越好呢。也不是对吧,也不是因为你每一个任务呢,你里边数据的数据量太小了,就像我们说的,你开关接M的时间比你处理数据的时间。还长,那这就不合理了吧,啊,这就不合理了,所以呢,是这意思啊意思,那我们想了默认的它也是128兆画啊128兆进行处理,128兆,那是不是我们真的就128兆一块就这样来。
03:11
就OK了呢,对吧,也不是,假如说这边这有个场景是这样的来看啊。假如说有一个127兆,127兆就可了,保证我们放到一个什么。Ma task里边对吧,啊,一个ma任务啊去做,那接下来呢,这个文件是这样的来。这个文件码,它一行数据啊,它只有一列。或者只有两列对吧,一个或者两个小字段啊,就是一个ABC什么东西,那你想想看,就是我就一个单独的字母,我128兆得多少行啊。这一个。128兆是幺多少?陈。
04:03
这是多少行数据啊?上千万好友啊。至少几百万吧,啊,那几百万行数据进到同一个里边,我们知道卖不进在哪。一行数据调用一次。Map方法。对吧,啊,这样也就可以,所以呢,这个memory数呢,也不是说你真的就128兆。也就没事了啊,你要想一想你未来的这个数据集。对吧?啊,到底是什么样子的啊,一行大概是什么样子的,这意思你要注意一下啊,你要关注一下这个事情就OK了啊,也就是说这个也只能是合理,因为设置过大过小都不OK啊,都不OK,好,那接下来也问你小文件问题。小文件,在那个我们所说的当中,你可以用。com来解决这个事情。对吧,啊,或者接外或那个什么重用啊,将我们重用呢,在这儿我们也提到了啊,因为也是一那种小文件,那在这个里边它也有自己的一个什么。
05:05
Com input,它叫com have input form,而且它默认的就是这个功能啊,默认的就是这个方式来读了,我们CTRLC直接把它拿一下。它的读入数据的方式就是什么。啊,一门的风暴的这样方式来读的,就是它本身就做了这种小文件的什么处理啊,小文件的一个处理好,那接下来就像我刚才说的,你128兆一块的时候,假如说里面就是一个单词一个字母这种的,哎,甚至用上百万上千行,我们是不是要减小它切片的那个什么。大小对吧,啊,减小它切片的一个大小,那切片的大小。减小,之前我们提到了怎么减小。有一个这个公式还记得吧,啊,前面的公式啊,前面的公式,那降低我们前面大小要改谁啊。
06:03
改最大值了,把最大值调到128兆底下是不是就可以了,对吧?啊,同样的是这个意思,如果说这个东西你想了呢,128兆太小了,128太小,我想256兆,那我把最小值改成什么?256兆对吧?啊改成250兆,你要知道你要想调大。调的是最小值,你要想调小调的是什么最大值啊,你要这样记一下,调的是这个值啊,那这个呢,是我们说的你这两个参数呢,重要的去设置ma数的,因为它可以根据文件数据量来可以控制什么。麦克的一个数量啊,麦克的数量好,那接下来第二个同样的又出现了一个什么。合理啊,其实合理这个东西啊,是最不合理的。对吧,这个得试啊得试OK,那刚才呢,我们讲的是调整ma数,调整那个最大值最小值,这两个参数可以做到这个事情,那接下来如何调整reduce的数量。至少大家会用方法,那种方法。
07:08
是不是这个对吧啊,这种你总要会吧啊,因为我们用过很多次了,在里边设置三个五个啊都是这样的对吧?啊都是这样的一个意思,好,那默认值还记得是多少吗。负一对吧,哎,我们刚才已经我记得应该改成了五了,是不是。好直接改成我了,那CTRLC出来,我重新进一下,是不是可以看到它是什么。负一对吧,哎,默认值负一,那有同学们负一,那到底是多少个维,你要写个一,我还知道你默认值一,大家都有一个。你负一对吧,啊,根据实际情况来,它也是根据数据量来的。也是根据数据来的,而且呢,这个地方就是他在设计的时候,也没办法说根据我们map阶段的一个输出的数据量。它是根据什么呢?根据你脉搏阶段输入之前的数据量。
08:03
能听懂就是这个文件,这个文件我接下来要走map任务,走什么video任务,而reduce的一个个数在have里边呢,它是根据当前最开始的那个文件大小来的。如果说你设置负一的时候,当然你要设置了五三,那到。就按照你这个值来吧,啊,特定的情况下什么啊什么的呀,这种操作的时候,你这个属性设置了也不好意思,因为在这个他在翻译这个搜索语句的时候,相当于是代码级别,它又把这个值干什么覆盖掉了。啊,覆盖掉了,也就是说类似的我们说一下优先题啊,类似的第一个all the什么的,我们当时看到了,尽管设置了个数,是不是也不生效,它只有什么。一个为就扫啊,这是一个点,这是一批他是优先级最高的啊,不管你设备设置或者你其他的参数设置什么样的,我不管啊,我就一个我就一个啊,第二优先级就是这个。
09:02
这个是第二优先级,你设置的这个点,那第三优先级就是我们看到的这个内容,它根据数据量来计算的,也是最后一个,当你设置为负一的时候。就是六个数默认的负一的时候,它是根据数据量,它是根据什么呢?根据最原始的那个数据量。然后除以256啊,除以这个数。56的。也就原始有一个G。分几个?他有四个啊,他有四个维,他这样来的啊,而且这个是原始的啊,他有四个四个维是这个意思啊个维,但是还有一个点就是它这里的几个数字啊,这个1009,始终会想到它为什么会取一个1009,你要1000啊,大家好理解一下这个什么呢?这个是最大的video任务数。因为我们数据量大了,假如说这个数据量非常大,除以256兆,是不是有可能会超过这个值啊。
10:02
对吧,啊,有可能超过这个值,但是它最大值是这个内容。1009啊,取这个值啊,1009啊这个值,因为它是怎么算的这样。求一个小的值,参数二是那个109。然后总收入量除以参数一是这个。总输入量,注意是总输入数据量,就是脉搏之前一定要记得是map之前啊,是map搏之前那一个数据量是这意思。它是根据这个来的,而且呢,优先级跟大家说了,优第一优先级最高的就是我们所说的auto,类似于auto,它必须只有一个什么。V6的一个时候啊,它是优先级最高的,相当于代码级别的一个修改,代码级别的一个修改,而这一块呢。对,当前你开的这个窗口有效啊,它就相当于是放在那个下的那个have塞的是不是我们写代码的时候,它有个pass。
11:10
对吧,Resources这个目录。这个吧,这个目录里面我写任务的时候,我可以在里面去写一个哈杜吧,就是雅安赛这个巴赛,然后在里面配有一些属性吗。可以吧,啊,这个优先级呢,就相当于是我们刚才所提到这个点,就对当前任务有效,因为你一旦在那块写了对当前任务有效,对吧,而这个呢,就是我们所说的什么。默认值了啊,它的一个默认值,当你为负一的时候啊,它的一个默认值这个意思好,那接下来还有一个问题,就是这个意思。那video的数量是不是越多越好呢?也不是吧,啊要如果说越多越好的话,也不会出现什么上面的什么合理的合理的,因为当我们数据集不大的时候,你分区分十个分100个。啊,你只有十兆数据,最后呢,你手动设定,我说reduce的个数分100个必须录是上来了,但是每一个里边处理的数据呢。
12:05
很少啊啊很少,而且最终你100个最终输出的文件数呢。是不是100个,而且这些文件都是什么。都是小文件吧,啊,都是小文件是这个意思啊,都是小文件啊,这个整体呢,是我们关于这个MR的一个优化MR的,我们把它。
我来说两句