00:00
好,接下来呢,我们看一下这个的组成架构啊。这张图呢,是我从官网上摘下来的啊,一会儿呢会带大家去看啊。还有包括后面还有几项服务。那你看一下这张图能不能看得懂啊,这边呢叫web service啊,其实呢,你都可以简称为这个数据的原望。数据的源头。那这边呢,像HTS相当于数据的目的地。那中间这一块,那才是辅助我要干的事儿。那么看啊,如果从简单角度来说,这里面就三个主件。件一个叫,少一个叫,一个叫。这三件,这是必须要打磨的啊,一定要清楚的,面试的时候是要问的。啊,问你这个服务里面有几个组件,如果这个没说出来,那我跟你说这种最原始的或者最低级最简单的问题,如果没拿出来。
01:03
以下的。吗?你反而就高拿的问题你没答出来,那还有戏对吧,人家觉得你这个确实咱俩水平不一般,咱俩不对等啊,我是六七年工年年,你是这个三四年的。但是呢,如果说这个没拿出来,那你几乎就是。零电压嘛,啊,没有没有用。这没得说,所以说直接就被pass。所以面,那到那时候面试官就该开始干什么了。全程面你的时候啊。面带微笑啊,朝你嘻嘻一笑。就毛了。对吧,啊。包括这个,最近这个班就有女同学,就是啊全程在面试,面试过程中啊,问一个人家微微一笑,问一个笑一个。只是人家没考虑说你是吧,太菜了。遇到这种就赶紧就撤了得了吗?一带的那个煎熬。行,那这里面呢,是有south有有,如果你稍微形象的比喻一下哈,呃,可以这样比喻,比如说这是。
02:03
是哪了?天津的码头?这是上海的码头对吧?啊,都是停靠站,停靠站那中间这块呢,其实就是一个,呃,搬运工对吧,一个船啊一个船,那船呢,这边上呢,是诶我要接收你这里面哪一个数据啊,也是哪一个集装箱的数据给我传过来。或者说哪个省的,北京省的到这儿啊,到这个省,还有这个河北省的到这另一个。然后再就是对接人。那中间这个过程呢,就是相当于哎,把这数据拿到,你说集装箱,集装箱里的数据拿到之后存到柴能其实就上传了。啊,上传,然后传到这边啊。到了这个上海站。上海站呢,这边呢,也有上海这个人,呃,这个人需要跟上海这边去打交道,说我这货这这批货来了啊,你要把这个货啊。就认识这么一个。场景啊。相当于是一个呃。
03:00
呃,码头,码头上的运输数据这么一个东西。啊,实实在在运啊。那下面呢,我们来看一看这个详细的这个组成原理啊,这是非常详细了啊,市面上是找不到。看完源码之后。行,那这里面一共分这么三块。数据输入端、数据输出端以及中间的网。时处理。啊,这么三块我来看看。数据输入端叫外部网啊,其实是统所有的这个数据源的统称。那这个右侧呢,这个是数据输出端啊,只放了一个EDS啊,当然不仅是他哈,啊,因为官网它放在这个,所以说。可见他是非常之常见啊。那中间这块呢,是一个啊,那整个这一个flu哈,它叫一个agent。啊,叫一个agent。就这么一个企业的名称啊,因为他对后面还会有多个A呢,进行一个串联呢,包括并联的一个组合。
04:06
一个作物结构啊,行,那一个就是一个A的。那在这个辅助当中三大部件啊。在呢?上次是对接你这个数据员的。这个呢是对接你输出的地方的,中间传动的是缓存数据。啊也比较好记对吧,啊比较好记啊,这边对上这边最深。那么在这个sources里面,它有这么几种常见的类型啊,啊不常见的,我们有哪些常见的,像有这个是文件夹啊。也说读文件夹里的数据。那这个呢,其实是这个啊。的书写,其实呢是执行Linux命令。至于这个命令是什么,而往往我们执行的最多的就是。菜啊。
05:00
刚带啊。一个文件。说吧,啊。他有的时候是不是监听一个文件啊,哎,那你说这里面是执行一条命令,执行这个命令,监控这个文件里的变化,如果文件里有数据变化,立刻读走。那这个是监控文件的。还有呢是一个阿波罗,阿波罗呢是一个序列化的一个框架,传框架后面呢,我们用到来说哈,这里面不展开说。那还有一个是K。耐。前讲吧。在林女士命令开始说话。没事啊,后面有什么用啊,其实那个呢,就是相当于是一个一把历史一刀是吧啊,短小形悍。他这个命令也是这样。后来呢,我们啊,一会遇到阿里的时候再说呢。那么这种类型。这主要这个呢,主要用于测试啊。开发时用的少一些。
06:02
好,那中间这个这一块。啊头这一块这一块呢,是位于这个south和之中间的缓冲区,就是一个缓。对列嘛,对吧,那这个呢,自带两种,一个叫一个叫。一个内存用的快,但是呢,掉电丢失数据吧,啊那这个呢。在磁盘当中说慢呢,哎,但是呢,这个掉线之后数据不丢失,那就看你的需求了是吧。那最后看一下这个C啊,也是最终输出的目的地,它有几种选择啊,比较常见的NS。开发啊,还有这个log呢,属于空台啊。啊,还有这个阿婆啊,其实跟这是一样的,后面我来说在讲多级这个辅助的时候。
07:00
啊,包括呢,还可以自定义啊,当然了,这个它也可以自定义啊。那是怎么个件?了解之后往下看,下面呢,给大家增加的就是这个事物。两类食物,一个叫裤子。Put呢,是从这个到这个China这一块,这个叫put。啊,一会儿呢,从这到这呢,其实这个叫take不一样啊,你要是英文学的好的话,这个是有。本质区别什么意思?就推啊推,那这个take呢。来拉啊,不一样啊,OK,那好看一下。呃,这个呢,是将S里的数据复到传统里面去。但它并不是一下子就到这个三层堆点,它到一个什么呢叫。小先生。啊,一个传输。中间的一个临时的一个缓存。啊,先到了一盆啊。
08:01
那这里面是都会的,将批量的数据写入临时缓冲区。也就是说,通过它将数据写到离子缓冲区。List里面去。然后呢,这样执行这个东。知道了。啊,肯的书提交了啊,把这个数据提交到哪呢?提交到真正的这个全省里面去。那一提交呢,往往是什么情况呢?哎,发现这个内存队列。不足。不除的话,他就会退回来啊,如果正常的话,直接就写进去了。这不难理解吧,谁在那不熟呢,还走的这。有可能他在里面已经满了。所以说他就不让你提交,那你在这需要去等待吗。OK。那个这块如果说你这个内存队列空间不足,那就回滚数据啊。等待吧,回滚吧,因为这事没提交成功吧,那就下次再提呗啊。
09:02
这后大家谁先做吧。前面讲的东西都都会认真去听。我讲的,你没搭理我肯定。所以在这块啊,这个事物啊,跟这个数据库里的事物是一样的啊。行,那这这是这一块将S端的数据啊,推送到传统里面去主动去推,那推之前呢,他是先将这个数据推到一个不利子的。这么一个缓冲器里面去。啊,然后提交啊。如果不成功,不成功,一般的情况下就是这个这一块。他的这个内存满了啊,或者说它出现故障。那么他就要回滚啊。那如果说在面试的过程当中,你能说出这几个方法来?比如说多破的这个方法,这是一个方法啊,在我们这个内容还有获得历史的。不可灭。还有这个动脉。
10:02
那妥妥的面试官直接就服了对吧?这个你要记住这几个方法啊。最差的情况下,你要记住。吧,对,最差的时候你要知道它是。那OK,至少能灭掉这个百分之六七十的免冠。啊。那这那后面再说一下这个take的事物,也就是说从这个传动当中去拉取数去到这。这么一个过程。这块呢是拉那拉的过程,也是一个trans。那这里面是那个。先将数据取到临时缓冲区。List,也就是说do take1执行啊,执行数据到这个take list这个上去。然后再来。最后将这个数据提交到。
11:02
啊,准确来说,其实这个还有一个,还有一个方法啊,其实叫。啊,八号的8K的啊。那个有点深了,没必要你就直接提交啊,就可以往后写了。OK,那如果说这个过程当中,数据发送过程中出现异常。将临时缓冲区的数据归还给。看啊,如果这个地方提交发生了异常,它会将这个数据打回到。这个要注意啊啊。他是这么一个说法的。就到这儿。跟这个不太一样吧,是吧,这是他内部的一个回复的,这个是他内部处理完,他要把这数据打回来。那么在这里面还有一个细节的地方啊,不知道大家有没有注意,我写的这个提交的数据都叫。哎,对。哎,批处理那也说不是一条来了我就处理了,哎,他是来一批,也就说可能是100条,可能是1000条啊这块呢,是我们可以设置的,后面有拆除。
12:11
但是是批处理,并不是我们想象的一条一条。OK,那这个呢,就是整个这个服务的流处理框架啊。那我们稍微回顾一下,那这块呢,这里面其实有三个五件一个。这最主要的,那这个呢,我们这里面有这么多消学啊,文件啊,还有命令行,还有日志啊,大家看。那么输出这个这呢啊,其实就是对应的as卡卡。控制台啊,文件本地文件,还有这个阿罗以及自定义。那么中间呢,它最主要的是和。那这个至于这个区别,我相信学到现在那肯定。偷偷的听啊。再做解释,那算下的最重要的就是这个。
13:03
一个是的事物,一个是take的事物。不得呢,属于推。那这个take呢,属于。那无论是这个拉还是推啊中间呢,都是通过这个事物处理,那上传也是负的时候。叫突破的方法,把这些数据put得到。历史。后肯定提交。接了。啊,如果不成功,那会问。等待下一次再提交。直推,那么这个拉呢,也是一样啊拉一样都这。将这个数据拉到这个take例子里面去。到这儿。到这呢,然后提交啊,如果提交不成功啊,它本身如果同时还会把这个数据。退回到全场。这就是整个这个服务流失的。框架的地址。原理啊,如果你把这块啊,要搞得画的清楚,搞得定的话啊,面试这一块。
14:05
不需要服务。你是非常有信心的啊。那下面这些具体这个哪个。稍微给你过一遍吧。比较官方的概念啊,像这个agent agent是一个G进承啊,它以事件的形式将数据从源头送至目的地啊,是如果数据传输的基本单元啊。一个agent只是其中的一当中的一块吧,你可以这么理解,因为未来呢,可能是多个agent的他们一个。串联啊,或者是多个针的啊,这么一个定型啊等等啊,后面有托住。行,那后面这个source就是接收数据吧,啊,是缓存数据的啊。那还有下面那个是不是写。那还有一个叫一。因为要稍微说一下。
15:01
他是个传输单元。录数据传输的基本单元,以事件的形式将数据从源头输出比例。他是在这块会每个读完这个数据之后,会产生一个一个。那就是一个事件,你看最终都写到这里面去了。也就读这一批数据,叫一段事件,一批数据,一个事件,一个事件处理,一个事件处理。是这意思啊。啊,这是。相当于一组数据,一个集装箱。
我来说两句