00:00
好,接下来呢,我们讲第四章HTS的数据流,数据流也就是说呢,呃,上传过程和下载过程。呃,具体的原理的一个分析,那么这块呢,属于这个面试的一个重点啊,这个跟开发的关系不是特别大啊。基本上呢,开发的时候也涉及不到啊。开发的时候主要是上面我们讲过的那些API以及呢命令。啊赛最关键的像这个L流操作呀,呃,相对来说都少一些。因为呢,目前这个阶段能自定义这个框架的话。分析还是少数啊,绝对的少数。但是呢,上面这个呢。像赛操作呢,是所有公司都会用到。那么下面看一下这个面试这一块啊,他问你什么。第一个本DFS的写数据流程。写数据,也就是说你如何向这个今天板上上传一个数据。
01:03
就这一问写吗啊。那在写的过程中啊,它是底层怎么找的。首先呢,这是一个集群。一个机器,这个机器上呢,有四个节点啊,分别是三个对震动的一。到了。那个里面存的是原数据。OK,这样,那下边呢,我们开始操作啊,左侧呢是客户端。端,也就是说未来他要操作这个集群。那他要干什么呢?他要将客户端上面的一两百兆的数据,也就。赠送点ABA。上传到这个。好这什么,那这里面,哎,首先是有一个客户端对象,这个客户端对象是不是就是我们file。盖呢,那个吧,是。
02:00
拿到一个FS啊。是一样的道理啊,然后它拿到它之后,它会创建一个distri的system。分布式文件系统。后面的所有操作啊,都跟他有关系。那么这个对象呢?首先他要向这个name not请求说我要上传送送件这边并且到。的优质艾硅谷这个问题。那一说往这上传,那内部都得干什么事呢?他首先要检查一下这个路径上有没有受风点。如果有直接报一个什么。File。存在啊。等到医院检查之后,你看,诶允许他上传。那就告诉他响应可以上传。现在已经进货了,这个文件没有问题。那上传,那它是不是涉及到我要上传到。上传到哪儿啊。
03:01
对吧,嗯,上升的。那上传到哪,接下来它就是请求上传第一个block,比如说。到一百八兆。上的这些。也请求你告诉我,我要把这个数据。传到哪个节点上?往哪传?好,那内的呢,经过一计算说。哎,你可以像这三个节点上穿。DNA1 dna2dna3。像这个他告诉你上哪了,跟什么有关系呢?跟这么几个关系,一个呢是节点的距离。也就是说,离谁最近?啊,离谁最近优先传谁啊还有一个什么呢,根据负载情况。谁的负债压力小啊?成色性调度,这两个呢,是最主要的一个核心因素。啊,距离近,负载小啊。OK,总之让它返回三个节点啊,123。
04:04
那么返回的商节点之后,那接下来它要写数据。写数据的话,肯定要有数。对吧。那这个呢,就是s date out负责。那写呗,已经给你途径了。那写之前他先打通这个通道。建立这个通道。说我要往你这写,往你这写,往你这写。三个副本。串行化写。那这个通道,哎,一请求之后。整个没有问题啊,依次响应说没问题,可以写。那这个数据通道就打了。打通完之后,接下来开始具体的去考这个数据。也就是说传输数据传输的过程当中呢,只不过呢,是以这个package。这个最小的一个单位啊。相当于一个包。
05:00
什么意思呢?你想想你这个整个一个128兆的数据,它会一下子就都都换过来吗。它不会啊,它是以L流的形式啊,它底层的话,你会知道它其实就是一种流啊,只不过这个流呢,穿的过程中是一个一个的。那这里面他首先找到第一块啊,第一个这个节点。找到这儿之后呢,它是先写到的是内存。其实是一个对联。这个队列里面,然后干什么呢?一部分他把这个队列的数据写入到。网站备份。相当于序列化嘛,对不对啊,把内存东西序列化到了本地,然后这个内存的东西接下来传递给。其实就是下一个副本。那传来之后依然是纯稻香的。进行中啊。内存队列。
06:00
你可以理解为集合啊,或者数数等等这些都行。带一部分序列化到本地,另一部分继续传输到下一个点。他为什么不直接序列化到本地,然后直接再成本地图呢?是不是又一次I慢呢啊,吃饭很慢,内存的很快,所以说走的都是内存啊。然后之后呢,在这弹一下啊,落盘之后呢,再内存。然后之后进行响应,应答说,哎,已经写完写完。一旦写完之后,他就会把内存中的数据。他必须得是对方啊,第三个最后一个应答,一个一个往前应答啊,都应答完毕之后,把这出生的数据。是写数据的一个过程之后最后一步,所有的数据都传输完毕之后。告诉内部的说我传输完成。智齿呢,是整个这个数据呢,就。账出完成了。一个过程。
07:00
其实就是一个L的操作。那下面我们来啊,重新来一遍。下列的过程。首先这边是集群,集群上有三个节点。上个弄的。呢左上呢,来一个客户端。客户端要访问这个集群。只不过呢,我这里面呢,是有200兆的数据。将送送点A。往内进行上传。那你要想申请是。要你上传必须有一个FS客户端对象。他创建打到。拿到之后首先向这个内进行申请。说我要把送的约好喂到这个路径上。那么这边呢,就会对这个路径呢,进行校验啊,是否存在啊,以及是否有这个文件,如果有直接告诉你,不允许传。文件已经存在。如果没有,那就可以上传。
08:01
好。那么目前一看,诶可以上传,目前。上传。想要上传完毕之后。那我要把这个数据上传到哪一个节点呢?对吧,啊,涉及到哪一个节点,那这个原数据。啊,经过一计算啊,距离的一个排序,你看。发现他内心啊。然后第二。那就给他返回这样的三个节点。返回的商务节点啊,用来存储数据。那我目的地已经有了,我要把这地方的数据啊。拷贝到这三个节点上。那是相当于最终往这写的话是output。这边你是有。那这时候就需要创建一个output。输出流向这倾斜。像这写呢,写之前呢,我们需要建立这个数据的通道。
09:03
发起请求。要建立。然后之后进行一一的应答。通道建立完毕之后,下面其实就是具体的L流的操作。二呢,你要再详细一点,那就是。的是拍一个一个的小包。加那个128兆啊,拆分成更细小的这个颗粒,那么这个小颗粒呢,就是先传输到内存中啊。谓的非快。那么将内存的数据呢?序列化到本。背过呢。啊,继续往下传,下一个节点传到另一个节点。的类型当中。然然是显示盘转到下一节点。吃饭上到下一点。之后都写完了之后,他会一。机的返回一个应答,告诉对方写完了,写完之后立刻将内存中的数据。
10:00
啊,都传输完毕之后,告诉这个内部的说我这个数据传完了。这个整个这个写数据流程。
我来说两句