00:00
好,接下来呢,我们来看一下哎,采集日志这个flu它的一个具体配置,那之前我们已经分析过,我们这里的source啊,选择的是泰DRS。这个我们选择的是卡夫卡。那用这个t source来监控这里面的日志的变化,实时的进行采集,同时呢,接收到数据之后写到卡channel,那接着卡channel是直接灌到卡法当中。那这个效率呢是最佳的,那你看我这些图当中啊,还多了一个拦截器。那这个拦截器起到什么作用呢?那大家思考一个问题啊,你说从这边我采集过来的日志,它有可能啊,会出现一些不完整的数据,比如说你是一个健身数据。那万一传过来的过程当中,这个杰森干掉了一半,比如说明明有十个字段。喘过来之后,已经剩五个子弹了。那这种数据它传输到下游的时候,它还有意义吗。比如说我们拿到之后,是不是它也不能够进行正常的一个解析啊,那有没有一种可能性,说我们在前边儿接收到这种数据之后,我就立即把它干掉。
01:08
哎,那其实这个拦截器啊,里面做的事儿呢,主要就是判断你传送过来的接身数据是否是完整。比如说判断你是否是大花开头,或者是大花结尾,哎这样一个操作。那大家思考一下,那这块这个拦截器啊,我们为什么没有做,哎,详细的解析呢。比如说把这里面传输过来的真实数据,每一个字段我都解析出来,去判断数据的合法性呢。哎,其实很简单,这个F在我们大数据场景当中啊,它相当于是一个管道。就类似于你家里那个下水道。那这个下水道啊,很容易是不是就容易堵了,尤其是你扔一点脏东西之后,它容易堵了,那我们这里也是一样的,如果你在这个拦截器当中啊,做了大量的这个哎,复杂操作,那么会严重的影响你这个性能,所以说这块呢,只能做简单的数据清洗操作。啊好,那这是拦截器相关的事儿啊。
02:02
好,那接下来呢,我们就开始详细的去配置一下这个啊,它对应的source拦截器以及对应的final啊。那这个配置啊,非常简单啊。写这种配置文件呢,一共有这么几步啊,第一步呢。干嘛呢?哎,第一步叫定义组件。把组件定义清楚,那第二步。第二步就是配置对应的S。第三步。那就是配置传统呗。第四步。配置对应think。好。第五步。拼接组件。按照这个步骤你去配,基本上就是OK的,那好,那下面我们来看一下,哎,这里面有对应的这个south China和S是吧,把它定出来。放在这儿。
03:01
啊,那首先呢,我们先来定一下对应的组件,那组件呢,比如说我们定义一个是ae这个组件,那ae组件它里面的S怎么写呢?So CS ss斯啊,一定它可以配置多个SS员。然后对应的组件名称我们叫R1,然后下边还是A1这个组件isn't。第二,China。等于,哎,那这里面定义一个CEOK。那下边呢,就开始配置这个S,那我们这个S,哎,选择的是这个TDRS。那他萨怎么配呢?哎,来到官网,一切的配置都来源于官网啊就可以了。反块iPhone。好来到这来到这之后往下看,看一下它这块的相关的一个配置哈,这里面这里面标注是黑体的,记住哎是他必配项,比如说不管你怎么使用,那这些项目呢,都需要配置,那下边你看这个是这个,哎不是这个加粗的,那就是可选项,可配可不配。
04:09
啊,那么先来看这一个,这个呢,是这个穿头丝,哎,这个穿头丝啊,其实是我们这个拼接组件的时候要用我们后面再配好吧,那么先来配一下这个tap啊,那tap。怎么配呢?A一点S4。是吧,然后下面的R1.type,那这个类型定义什么类型呢?你看一下官方手册,它官方手册说这块呢,我们要定义成。还点,那就把它拿过来呗。啊,先这。哎,这样就搞定了第一个配置参数,那接下来再往下看。他这边呢,说要配置的是这个,诶file group司,比如说你要监控哪一个文件夹。好吧,哎,那我们把这个拿过来。
05:00
平衡仓,那前面呢,拼接上这个。也是R一下面的这个file group斯啊,那group斯。它等于什么呢?哎,你随便给它起个名字,比如说F1就是FILE1可以吧,哎,监控的第一个文件,那下面再往下看,那它还有一个呢,你看file格斯,你不上面定义完这个F1了吗?然后他下面说那具体的这个文件路径名称是哪一个。你看一下这块的函数。啊描述那这块呢,是其实通过这个正则表达式规则可以去进行一个相关匹配的。那这里面你看我们要监控的文件在哪呢?找一下。来到102。是不是这个APP log呀,哎,监控这里面我们监控谁呢?监控到。这个目录下是不是监控这个文件呢。哎,只要监控这个文件就可以了,那后面这个日志这个名称是不是动态变化的,那么我们监控的只要是前缀是APP点的文件是不是就可以。
06:01
因为后面这个每天不就生成一个文件吗?哎,那我希望都能够监控得到啊,那这个正则应该怎么写呢。DWD,首先前面这个路径拿过来。好,接下来我们怎么配置呢?哎,首先把这个拿过来。这然后点F1等于,哎,等于我们刚才复制的这个路径,哎,复制一下。然后它下面是不是有对应的这个文件呢?那我们对应的文件名称。是不是都是以这个APP点开头的,哎,把它拿过来。不是。我们希望监控这个,那它后缀是什么后缀啊,我们是来一个星哎,这个在这个正态表达式里面啊,这表示啊任意个啊,这个前面这个点后面呢,是任意的字符。啊,你后面是什么内容都能够无限多个的一个匹配啊,那这样呢,就能够匹配的上。那下面再往下看。
07:00
它下边啊,虽然说这个不是加粗的,但是还有一个文件叫project file,那这是什么含义呢。还记得咱们这里面是不是支持断点续传呢?那它所谓的支持断奶续成的原理,是不是在一个文件里面维护了一个offset?A车记录了我上次读取文件的位置,按照这个文件路径存在哪里呢?诶,默认情况下是在你这个加目录,比如说你这个home at特硅谷啊,这个加下面一个隐藏文件DR,然后t DR position森啊,杰森,那一般呢,我们会把这个路径啊,啊给它换一下啊,换成我们弗鲁姆自己的加盟下。那怎么换呢?仍然是。把这块过来。不挣钱。然后呢,我们一般会放在哪里呢?哎,我这里面直接把这个东西拿过来哈,就是这个地方。O BT model放到下,然后have DR position,哎,这样就可以了。
08:04
行,那你说这样呢,这个source就已经配置完毕了,那接下来这个source当中啊,还有一个拦截器,比如说intercept,那么这个intercept它怎么配置呢。那我们非常简单,那看一下呗,哎,查找一下intercept。INTER。Intercept查找一下啊。的比较多哈。好到了啊,那这里面呢,就是对应的这个intercept斯,比如说的拦截器到底怎么配呢?那你看这块它这块呢,已经给你列出来了,对应的这个配置案例。啊,我给它截出来啊。看一下能不能看懂。
09:00
啊,拿过来。稍微放大一下。你看这里面前面啊定义的都是各种组件,然后接下来定义的是这个,哎,SS这个拦截器是吧?哎,这里面它定义了两个拦截器,其实我们只要一个就可以了,那么就按照它这个配置啊配一下,那首先呢是R1。到这儿。拦截器嘛。配置拉进器啊。那R一下面的就intercept。等于比如说我定义一个IE这么一个拦截器,那接下来那它后面是不是还要定义一个这个拦截器对应的这个类型啊类型好。那就把他拿下。然后定义的是IE的类型。IE。点。Type等于那后面这个拦截器是需要你自己去自定义的,那这里面我们后面再写,那这个这地方要实现什么功能了,还记得吧,这块这个拦截器啊,要实现的功能呢,就是ETL数据清洗的过程。
10:09
清晰的就是判断接身是否完整。来完成对应这样的一个功能,那后面我们再来自定义,好吧,那下面我们来看一下这个channel应该怎么配,那这个channel啊,我们用的是不是这个对应的卡夫卡才能啊,那你就找到卡不卡才能,到底怎么配的。来到这里面还是搜索。变成。看来走到这儿继续。到了到了之后还是看一下,哎,下面这些配置,那这里面啊,给你列出来两个,一个是type类型啊,另一个呢,是你连接卡普卡集群对应的这个施罗斯,是不是这两个参数要配一下。那我们把它拿过来。那谁对应的这个tap呢?那首先就是这个A1。
11:03
点。它下面点。对应的C是吧,哎,C1,然后点对应的就是这个派。这样就找到这个type类型,那type类型是啥呢?你看到官方跟你说的这个类型啊,是这个。把它拿过来。小雷宁。这样就组成了这个卡法对吧,哎,第一个type类型,那下一个参数。再啥时候?仍然是这儿开头。后面拼接上这个卡普卡boot serve斯知道吗?诶说连接的卡普卡集群。哎,连它那这里面我们就配一下拍度102,然后对应的这个端口号是多少啊9092。然后呢,再来一个hi do 103对应的9092。其实在这里面你可以把102 1314都配置上,但这里面你配置两个也够,为什么说配置两个也够呢?
12:01
他这里面啊,是连接上你对应的这个卡不卡机群。哎,它连接到任何一个节点之后,读的是什么呢?哎,他其实读的是这个topic的原数据信息。并不是你真实的数据是你原数据,那比如说你有多少个分区,有多少个副本,那你只要连接上任何一个节点,都能够获取到对应的原数据信息。哎,所以说没有必要都写上啊,当然了,你要配置两个的话,可靠性是不是要高一些啊,万一幺零二没连上,你可以连接上103。那这是这块啊,相关的一个配置,那下面还是你要配置一下我这个数据。把数据发送到卡不卡的哪一个topic里面去。你看我们现在这里面的是,呃,卡卡车头think往下一级写,写到卡不卡来往这里面写,你往这里面写,是不是相当于是一个卡卡的生产者呀。哎,那就是关于卡卡生产相关的消息,你还是要写的。那比如说这里面就是这个哎卡topic你要配一下。
13:04
那卡不卡topic怎么配呢?拿过来往这一放,然后呢,上面呢是C。来。知道吧。这样不就是把这个卡法头给配了吗?那配之后我们要写入到卡法的哪一个topic里面去呢?P。来往这个topic里面去写好。那再往下看,还记得咱们说这个卡瓦穿的啊,它有一个bug。啊,也就是说你传输过来的数据呢。包含服务的头和对应的这个保底。哎,要不要按照这种数据进行一个接收。那你看这哪个参数了,这个pass as flu,比如说你传输过来的数据是否保持当中对应的一个数据格式,如果保持的话,那就始终有头有保底,但是这里面呢,实际我们只需要对应的保底,那我们需要把它这值改成什么?哎,改成false。
14:00
拿过来。Boss。那好,那前面对着这个。他默认值是处。这样呢,这个channel我们也就配置好了啊,配置好配置好之后呢,接下来再往下看,那下面呢,还有对应的这个S,那这个S我们很显然没有,是不是就不用配了。你就不用配了。那再往下就是拼接主件,将你这个source和这个是不是对应的绑定上啊,那怎么绑呢?那就是对应的。A1。A一点。点R1,比如说自己的主件呢,是R1是吧,那R1连谁呢?哎,连的就是这个。我连上对应的。C。这样整个组件呢,就已经拼装完毕了,你看非常简单啊啊,所有的这个咱们这个配置都是按照这个官方的手册,哎,你照着他去查,那这个东西呢就能配置好。
15:02
啊,那这里面呢,我们还差一点点这个的这个拦截器这个配置,哎,等我把拦截器啊写完之后,然后再把它呢,哎,放到这个集群上进行一个运行哈。
我来说两句