00:00
好,那这块呢,读写流程其实已经讲完了,前半部分就是读写的前半部分找那个原数据信息大家都一样了啊,定位数据都一样,真正的请求到单台服务器管理约定的一个节点的时候,它不一样了,对吧?啊它不一样了,好最后呢,还有这个点,就是说我们这个地方呢,你刷一次新的一个文件,刷写一次新的一个文件。小小文件过多吧,所以他定期的要去干什么,合并啊,要去合并数据啊,合并数据,那这里边呢,合并呢,分为两种,一个是。一个是me。一个是什么小的,一个是大的啊,全局的合并啊,全局的合并,那这个小的合并啊,呃,出发的呢,就是它会将一些小的文件,就是特别小的文件合并,这几个大的它不做全局合并。而这个major,不管你小的文件,大的文件,我最终目标只有一个,把你所有的文件合并成什么。
01:05
一个。合并成一个能听懂啊,就做这个事的啊,做这个事的OK,那我们看一下同样的呢,它也有具体的参数啊,这个合并呢,就是这个内容,嗯,你看一下这个东西呢,比较简单啊,就是刷写下来,它不是刷写出来很多的文件吗。对吧,啊很多的文件,那它会经过那个小的合并啊,小的合并呢,诶把某几个小的合并成什么。大的啊,这个文件呢,稍微有点大,有点大就不合并了,这是小合并啊,小合并自己呢,时不时的就触发一下啊,时不时触发一下,OK,当然这个也可以手动去做啊,手动做那还有一个大的合并啊,这个是只选取一些小的相邻的什么HL,将它合成一个更大的啊,就是把小文件合成大文件之后呢,还有一个我们所看到的major,对吧,Major就干什么。合并那个。啊,合并成一个就做这个事,就不管你是大分还是小分件了,反正我就合并成一个啊,合并成一个OK,是这个意思啊。
02:05
好,但是当然特定情况下是这样的,如果说你这个文件数超过三个的话。你经过这个合并,它也会触发它。啊,也会触发它来看一下之前我们是不是有一个have命令啊。好。呃,应该是在我们看一下啊。Tool工具的。Com。Major comp,这个呢就是小合并,这个就大合并啊,当你文件数超过三个的时候呢,它其实走的也是这个内容。啊也是走的,这个也有两个的时候,你就合并看不出效果,你得用它。啊,内容,他主动的去触发大合并,但如果说是文件数超过三个四个五个文件的时候,我们可以干什么?用它啊,执行它的效果跟它一样了啊,跟他一样了,是这意思啊,他们俩有什么区别呢?就是说如果小合并啊,它不会删除那些数据。
03:08
就简单的把数据两个文件合并到一块。就类似于。刚才我们做了一个事,A文件是不是有张三,B文件是不是有李四,而且我们知道。是不是李四的时间戳比张三小啊?对吧,刚才我们说的对吧,我们因为手动付的时间戳嘛,一个是22,一个20个他我做的对吧,这不是在两个文件里面嘛,如果说你简单的。去做什么,假如说触发了这个小合并,这个张三李四都在。都在,如果你触发了大的合并,他就要开始删除数据了。把谁删掉吧,把李四删掉啊,因为李四是被覆盖掉的那条吧,啊要把李四删掉,那这个东西呢,我们可以看一下,在官方文档上搜一下这个。合并。
04:01
啊,这。对吧,他说经常的是去选择一些。小量拼点那个数据比较小啊,把它重写一下到一个sofa对吧?啊把那些小文件合并,他这边说了。他说不会去删除。Delete的数据被删除掉了,或者说是。过期的版本,过期的版本就是刚才我们所说的张三李四,这个是过期版,这个数据不是被删掉,不是被delete这个标记打造的,而是说他们俩之间有互互相覆盖的关系,能懂这意思吧?啊,那小合并呢,它不删除,但是大合并的话,它就要干什么。删除啊,它就删除做这个事的啊,这块我们注意一下两个,那我们来看一下,其实更多的用的是什么呢?大合并啊大合并,那我们首先呢,第一步来看一下它触发它的一个什么。
05:03
条件,因为它可以手动,肯定有自动挡,你不能老是这么上我手动挡comp。他卖的走一下。哎,这个这是一个,这个是什么合并啊,没他是一个呢,默认。七天,七天时间到了,我不管三七二十一,哪怕你只有两个文件,我都干什么?大合并啊,大合并,所以官方建议在生长环境当中啊,我们都把这个什么。关掉的,因为这个很危险啊,因为有可能七天这个时间点它是自动的,对吧,一旦发生什么情况,是一个白天的时间,而这个整个集群的资源。用的比较高的时候,你想想看合并是干什么事的。他刚才这个官方文档说了合并是。重写,怎么能做到重写呢?
06:01
是不是读进来写回去叫重写啊,对吧,那这个过程就是我们所说的在HDF上做的什么随机写操作核心的过程嘛,就发生在这。我们之前是不是说过,你要在SD上做随机写操作,是不是把它下载下来,改完了之后写回去啊,那这个地方它用了什么词啊,叫write吧,叫重写,也就是说一旦发生这种全局合并,而且这个东西是。不管集群资源的,我一到这个时间点我就出发,一旦出发你想想看,这个操作是非常的消耗什么资源的,所以生产环境当中建议把它干什么。设置为零,设置为零的话就关闭,不要以为设置为零就是随时随地啊,那就封了对吧,那设置为零更不靠谱了啊,设置为零呢就等于关闭啊,等于关闭找一个合适的时间你去手动触发这个什么。全渠道啊,触发这种全渠道那种啊,触发这种全渠道合并啊,全渠道合并OK,那继续还有,然后还有一个什么抖动比例,它可能会延迟一下啊,有一个抖动比例就防止就是我们刚才所说的那种情况出现嘛,对吧,今天资源占的比较,他官方也考虑到了,但是生产行业当中还是不要因为抖动这个事情啊,不太靠谱。
07:21
啊,不太靠谱啊对,因为生长环境都关掉了啊,这个就不要想了,这不想都关掉了,OK,那接下来是这个内容。合并的一个数量,他说如果说超过这个数量。谁超过这个数量?做吧,超过这个数量啊,在任何一个做里边,也就是说对于任何一个列图超过当前这个数量的时候,他要做什么。对。当前的。内存对吧,他说了,他还举了例子,这个一个so是什么东西啊。
08:02
是一次memory刷写下来的吧,啊,其实他不说这个事,我们也知道了,一次刷写下来是不是形成了一个缩,对吧,也就是我们看到的什么东西。这个吧,啊,这个文件名还很长的对吧?啊很长的,那我们不管,那我们继续往下看,他说。然后。去干什么?重写所有的。多。Y写成一个吧,啊,写成一个这个呢,也会触发它这个什么。合并吧,啊,而且这一块它用的是more than,所以大家认为这个东西。是几个才开始写啊?大家对于more than是怎么理解的?超过是不是?哎,大家都认认为超过,其实我也认为超过,但是当看到源码之后,它并不是超过,他用的代码里面写的是大于等于这个参数。
09:01
所以说有时候。就是人家写的这种官方文档,咱们不是那个不是啊,也不是人家写的,不可能是咱们不理解这个摸在到具体的。含义是吧,因为咱们学的都是超过是吧,那我们想的应该是四个及四个以上嘛,在源码里边写的是大于等于三。啊,就是大于等于这个值,也不是写的大于等于三啊,他先去获取这个值,然后写的是大于等于这个值啊,大于等于这个值,也就是说三个的时候去合并,但是呢,你要注意一个点,不是说那有同学在想,那我。那我管你是超过还是等于,那我搞四个,你总是摸在范围符合了吧,但是因为有要考虑到HDFS整个的一致性问题啊,啊一数据一致性问题,它在这个合并的过程当中呢,它不会立马去出发,就到了这个条件,他还要等一会儿,但是你手动触发的时候是可以的,那我们来操作一下来看啊,现在是不是已经有了两个文件了呀。哎,有三个了是吧,我又刷了一次,是那个叫赛那个文件刷了一次,我再来一个。
10:03
铺,因为他写的more than对吧,那我就遵循一下,他按照我们理解应该是四个及四个以上啊,四个及四个以上,OK,我再铺一个1003吧。1003,然后接下来是我们所提到的点是那个。Name。呃啊,叫张三也不想写宝珠了,想换个人。玉阳啊,富强是吗?富强民主是吧,富强富强来了,走,那我们把富强也刷写下去吧,对吧,刷一下去吧,走。然后看一下四个吧,然后我们做一个什么事。手动comp,注意我们之前说过,超过三个的时候,超过三个的时候他走comp跟这个major是一样的啊,一样的效果,STO3对吧,走。
11:02
合并了,合并之后来注意啊,注意看。这个地方稍微8B什么CD吧,啊注意。走。8BCD多了一个什么C2还是多了一个什么C啊,应该是这个九。因为他考虑一致性问题,他不会这个时候立马把以前的数据删掉,是不是首先你能看到多了一个文件,其实这个文件就合并之后的那个文件。合并之后的那个文件,他为了数据一致性,因为它防止中间出现问题啊,他这个暂时没删,大概因为咱们虚拟机问题,我测的在虚拟上生产环境当中,没关注这个点,没关注,没太关注,因为这个做测试的时候,当时在上课的时候,诶,它没掉对吧?呃,过两三分钟虚拟机环境下,两三分钟它这个就没了啊,当我们稍微等一会啊,稍微等一会儿,过两三分钟它就没了啊。对,他要过两分钟。啊,我们等一会儿,等一会来把这个好来看一下这个东西没了吧,对吧?啊四个他会大大概的等个一两分钟啊,两三分钟大概的样子啊,就就就会没了,就最终呢,合并成一个文件了,合并成一个了啊出发他这个合并啊,自己会去合并的啊正常情况下,如果说呃,还有我做个测试,拿虚拟机做个测试啊,就是如果说你生成了。
12:23
四五个。啊,生成了四五个文件对吧,四五个文件,然后或者七八个吧,然后你他不是超过了那三个嘛,它会触发合并,一般的你要等个两三个小时就虚拟机啊,它自己就合并了。啊,他会做这个事啊,他会做这事我不知道是去明白,首先是这个问题啊,他会考虑一致性问题,就是我们刚才所说的,他不会立马去触发,他就是说他判断他到了这么大就超过了四个,他还会等一会儿,因为刚超过四个的时候,这个人合并意义也不大,对吧,他多等一会儿啊,多等一会儿,基本上你如果说。中午吃饭之前,就是你在去吃饭之前,对吧,你搞八九个文件,你多拉SH几次,你完事之后,下午上课的时候,你应该能看到合并之后的一个结果啊,基本上应该能看到我之前做过测试啊,啊这它不是立马触发的,不是立马触发的啊,就跟刚才我们看到的,我们理解的是,因为是我们刚才理解的是唯一执行那个地方,一刷新那个地方应该是出现一个文件,而那四个文件都没了了,但实际上它还保留一会对吧?啊,它还保留一会儿啊,是这意思。
我来说两句