00:00
接下来呢,我们讲一下这个combine test啊,它的一个欺骗机制。刚才我们讲的是发音啊。那么另一种格式呢,叫combine合并。他这个即便机制呢,跟我们刚才讲那个还不太一样啊。那样。我们来看啊。框架呢,默认的是这个test input切片机制是对任务按照文件规划切片,不管你这个文件多小,是不是。欺骗了。那就会遇到各种小文件,每一个小文件都需要你去开一个卖房。对吧,有可能这个文件1K你也得开一个,甚至说几个字节,十个字节都得给我开一个。那是不浪费集群这个性能。我们是不是又涉及到如何来解决集群上的小文件的问题啊?样的啊。这是第二个了吧,第一个是什么。是啊。回答。那么不管那个文件多小,都会是一个单独的切片,都会交给一个map。
01:06
这样呢,如果有大量的这个小文件,就会产生大量的web,效率极其低下。直接有可能把你这个机器跑崩溃了,都是有可能的。啊,瞬间之间。所有内存全没了。那怎么办呢?很high啊。这里面有一个叫combine input,用于小文件过多的场景,它可以将多个小文件从逻辑上画到一个芯片中,就是说什么意思啊,你这里面虽然出这么多小文件。来,我先给你,逻辑上认为你是一个。一个切片。这样呢,多个小文件就可以交给一个麦态处理。因为这ma就由切片决定,多少个切片就多少个。那怎么玩的?这里面哈。假如说虚拟存储切片最大值设置,设置这个max input。
02:03
福利的size。这是多少呢?这是失账啊,当然我们实际的开发中可不可能失账啊,会比。的大的多多啊。128兆。那注意虚拟存储切片最大值设置,最好根据实际的这个小文件大小情况来设置,比如说你看你这个集群当中,这个小文件大小分布在什么范围,比如说分布在是一兆啊啊两兆啊啊。台山照啊啊等等这种。情况,然后呢,具体去考虑这样。啊,将这些小文件呢合并到一起啊。那看一看这个combine,它是如何切片的?这个比较绕啊。比如说设置一个最大值是正。那么设置完这最大值,这个切片过程当中,它其实是分了两块。哪两块呢?一部分是虚拟存储的一个过程。
03:02
另一部分才是。是在在切片的过程。什么意思呢?为什么要先虚拟存储一下呢?看压力。比如说你有四个文件。Abcd。分别对应大小呢是1.75.13.46.8。那最大值是四兆啊,记住最大值四兆,那它虚拟存储的时候怎么存。他先比。他拿出这个1.7兆之后,它跟你这个最大值是比诶。你看小于这个市场。虚拟存储啊,并不是改变它存储的位置啊。是逻辑上划分啊,那另一个5.1兆。买大于零时的,那他怎么存。我是纯成四兆加上1.1兆还是。他不是这样的啊,它是5.1兆,比一下这个四兆看是否大于它,诶一看确实大于它。
04:04
但是呢,小于二乘以是正。小于它最大值的两倍。的。划分成两块。啊,这地方注意啊,它是一半一半,那如果说这个不是5.1是十兆那。那就会说纯一兆四兆,然后是剩。六是吧,那就是三让加三。这个吗?啊是这个含义啊,是这么纯的。好,再往下,如果说是3.4兆,那小于四兆没得说啊。独立成一块。那6.8同样的问题,大于四兆小于二乘以四。那划分成两块,三点是一块,三点是一块。那这么挂钩完之后,它最终它形成了几块呢?对吧,1.7,这是一点。
05:01
这家在玩的。3.43。哎,都是这啊好像。那都是3.4是吧,都三点。OK。那再往下切片的过程,这个呢,是存储完了之后,那剩下的切片。他会判断虚拟存储文件大小是否大于这个最大值,也就是说是否大于它啊。他跟他对比就是这样。大于等于,则单独形成一个切片。那你看现在是不大于啊。很小,那它小怎么办呢?如果不大于,这跟下一个虚拟存储文件进行合并,形成共同形成一个切片,你说1.7,它小于市场本身。但是呢,它加上这个2.5兆之后。周角大约。知道了。到了。那下面同样道理。你这两个合成一个了,那2.55.5小于知道吗。
06:04
它加上3.4之后呢。那再往下呢,是3.4小于四的3.4加3.4大于。最终就是。他就这么接的哈。最终会形成。那这块的源代码啊,如果想看同学。我给大家准备的资料里面。地方。质量。扩展资料。还有一个合并小文件,切片逻辑和测试数据,这里面都有,有四个测试文件,这个呢是合并小文件里面的源码。源代码啊,这是源代码具体的逻辑,那往下看最主要看哪一块呢。这块代码呢叫left小于这个马赛现在剩下的这些呢,小于两倍的最大值。
07:07
这句话是什么意思呢?这是源代码里站出来的啊。If remainer is between and,二倍的就剩下的部分嘛,对不对,剩下部分在这个范围内,Instead of creating split of the s。这个代替创建最大的这个大小we create。二分之。这是一组。To available,然后really。就是避免的。避免创建特别特别小的切片,对吧。对吧,所以说这块要注意啊,它一定是要判,虽然说比这个马赛大,但是呢,他要判一下是否比二倍的马赛。
08:00
如果不大的话,那它接便的时候就是对半。二积分哈,实际呢,这边代码呢,确实也是这边。二去分的。这里有很多哈。包括这个下面这一块。块的逻辑代码,这里面都有相应的一个说明啊。我感觉再讲一下这个下去吗。好,这也是这个群体存储的一个过程。
我来说两句