00:00
呃,那这里面有什么问题呢?是这样子的啊,呃,这个月这个包呢,是你跟你们一样,这个是我把官方的这个包给它移出来了,而现在的立底下是我改过源码的包,我这样啊。我我先把这个给他移出来啊,我干什么呢?Ma叫。嗯,是吧,哎,那个叫什么,我看一下啊,我出来。啊叫from行,那我们进到这个Li里边,嗯,然后呢,我们先MV from。这个t.source我先给它呢,改个名字,我给它移出去,因为不想跟外面冲突嘛,对吧,点back好,这是我们新的加包,这是我改过代码的夹包,然后呢,我给它移出去啊叫from杠材DRA这个back给它移到上一层。好,当年这个目录底下就没有了,然后呢,我们退出来。现在呢,有一个back,我再把这个移进去,这是官方原本的啊,就是跟你们一样。
01:03
我直接给他移出来的,然后呢,给它移到当前目录的Li底下Li里啊,这样的话,我的环境跟大家就一样了,大家也可以去做这个测试啊行,那这个时候我做一个什么事呢?我CD到job里边,我这边呢有一个。任务。配置信息,有一个任务的配置信息对吧?好,那这里面呢,我用的是。South China sing各一个,South呢,我用的是。Single用的log China用的memory,最简单的,最后呢做一个绑定对吧,这个任务没有问题吧。有没有问题,这个任务过得比较快啊,然后我监控的是from底下,底下file.c也就是说只要是fair开头的所有数据全部监控过来。OK吧啊,然后我把它的位置信息呢,写到当前目录底下有一个position这个地方啊,写到这个地方好,这是我们的任务啊退出来啊退出来好以后呢,我先这样,我先进到这个弗。
02:10
嗯,里边有一个范尔斯。这是我们的文件,叫三二点TC。可以吧,我们看一下啊,这个fair2.tc里边有hello艾硅谷A3条数据啊,那接下来呢,我做一个事情,我把上一次我消费数据的这个杰森呢给它删掉。好让他重新生成从头消费嘛,那这个时候我去启动一下当前这个任务,那大家告诉我这个任务怎么启动。啊,当然这个时候就比较慢了,你可以敲一下啊,这个任务怎么启动还记得吗?咱们的任务怎么启动?
03:06
你看没有回音了,那我就直接敲了f1.sh,完了就只会用脚本了。啊,原生的命令不会用了,问懵了吧,大家现在是不是处于这个?懵的状态啊,一个说F1,一个F2,很优秀啊。啊,NGXXX没了是吧,参数呢啥来着。啊,不知道,就记得一个这个。你看看,你看看。这个时候体现了大家的差距了吧,是不是,你看看人向总。你再看看这个。这是什么?翟总是吗?杠N-C-F啊CFND没问题啊好,那我们这样B。From ing对吧,A镇的。
04:00
啊,对了,N认得不能到了,对吧?杠C是我们的。com目录,杠n na1name名称吧,杠F是刚才job底下有一个test.com。对吧,那之后呢,就是杠大地,然后呢,这边是from,就是因为我们用的是log啊,如果不是log其实就无所谓了,因为我们想打印到控制台嘛,对吧,root.log。啊,跟大家在这个,呃。Logo附件当中配的东西一样,然后呢,我们用的是in for数据打印到哪吧。打印到CL当中。对吧,好,那我们练习一下啊。刚才我们数据是不是hello爱硅谷AA呀。
05:03
哎,我多加了一个逗号是不是。对,刚才那个命令应该是多加了一个逗号的,呃,这边已经生成了,我看了一下这个泰迪杰森他已经读完了。读完了。好,那我们重新写一下啊,RM杠阿尔法,把这个泰利阿,这个杰森给他干掉,然后我看一下启动命令啊。启动命令。这边是有问题吗?多了一个。啊对对对,这个应该是log对吧,不是log刚才唱错了啊,应该是log,对,有同学提了。没问题啊,感谢老铁啊,看到错误对吧,然后我们重新启动一下,也就是说最后我们配置信息,这这个信息只是说将数据打印到控制台对吧,它不会影响到我们的任务啊。好,这个时候是不是看到数据了,叫hello爱的硅谷A,没有问题吧,好,那这样啊,我们这我敲一个回车,然后接下来呢,我把这个再打开一个。
06:10
这个时候我CD到OD Mo room啊,然后呢,直接进到范小斯里面。分到四里边,刚才我们监控的是不是这个目录,哎,它里边呢,我们看一下啊,Hello艾硅谷AA,那hello艾硅谷AA没有问题,那这个时候我们测一下这个东西还是好的,我往里边传传一个东西。E一个bbb,然后呢,我给它追加到三二点TC里边动态的读取嘛,大家说的对吧,实时监控啊好放进来,放进来之后呢,我们切到这边来等着啊。哎,BB是不是有了。对吧,说明我们这个TS呢是没有问题的,好,那这样我把这个敲多一点回车,这个时候我干一个什么事呢?我将这个文件啊改个名字。改个名字对吧,我改成什么呢?啊MV2我改成FAIR1,随便你只要是fair开头的就行了。
07:06
你只要是范开走就行了,好,那我们回车,这个时候我们等着。等着这边看是什么现象。来,大家发现了什么现象了?数据整个的怎么样。重复了一本。重复读了啊,不是范开头就兼顾不到了呀,因为我们写的那个正则是F开头嘛,范点心刚才还记得吗?对吧,完全重复了一份。完全重复了一份。对,整个完整了,重复了一份,好,那这是什么原因呢?有同学知道吗?为什么?
08:01
为什么他会这样呢?来我们看啊。这个地方,因为泰利S呢,它是这样。它是按I no的加权路径。绝对路径。按照这两个值。判定它是一个文件。啊,用这两个表示是同一个文件更名操作,I no的值注意不变。但是文件名变了,他认为是一个新文件。啊,新文件。对,他认为是一个新文件,按文件名,注意按的加file,然后确定一个位置,也就是说两个K联合主件作为这个内容的,所以会导导致这个问题,所以大家在使用的时候啊,使用的时候一定要注意。注意什么事呢?要。使用不更名的打印日志换掉。
09:01
比方说我们在离线书当当中,你用的那个脚本。不是写到文件吗,再用读取嘛,对吧,那个地方咱们用的就是log。Back。用的是log back,而不是log for,你比方说我给大家看一下log啊,Log附件呢,那卡夫卡里边用的是log附件打印的啊,卡布卡里边是log佛界打印的,我给他家看一下log附界当中呢,他每天他当时啊来我们对比一下这个数据你就知道了,State change首先呢,它是不是有一个state change。对吧,这是当天的,如果过了凌晨之后,它就变成这个样子。啊,他就用年月日,假如说今天结束了,我启动卡夫卡今天结束了,那这个文件呢,就会变成8月20号。杠零零。啊,他为更名。在劳缩件打印日志当中呢,它会更名啊,它会做更名操作,那就很有问题啊,对吧,所以我们要用的时候一定要注意一下,要使用不更名的,这是第一种。
10:04
解决方案就是解决方案啊,用low back,而我们理念书它其实用的low back,那另外我们就干什么呢?修改源码。啊,让tell their。判断。文件时只看什么I node?I know的纸。对,只用IO的,这个呢,要修改源码,因为为什么我们要讲这个东西呢?因为你到公司的时候,有可能我们也说了,前半段都是Java去做的事情,对吧,人家Java部门他不给你改,他说我已经写好了,不想改了,那这个时候我们只能改变自己。对吧,我只能改变自己,好,那怎么做呢?这个地方我已经做过了啊好。CTRLC我把它干掉,干掉之后呢,咱这边不是有一个这个加包吗?对吧,我给它挪进去,这是我已经改过代码了,我先把Li底下关于from tell s这个东西呢,给它移到,哎,不是MCMV啊。
11:09
我给它移到。这儿。对啊,我看到了,感谢啊,我已经看到了,就是在你们我看到你们那个弹幕之前,我已经发现了这个问题,我先把它移出来,移到当前目录。对吧,好,移出来了这个地方,然后我再把我改过原法的东西给它扔进去。叫这一个点back给它移到当前目录的立底下,然后呢,我们进到这个Li底下。我改个名字。然后呢,把它改成它。啊,那接下来呢,我再重新做一个测试给大家看啊,重新做测试之前呢,我先回到这个里边,我把这个位置信息给大干什么删掉啊,把位置信息删掉,那这个时候呢,我先启动我们的任务。
12:09
把这个任务命令找到走。那是不是还是好的,叫hello,爱的硅谷AB。到时候再说这个,这个先看效果,先看效果好吧,先看效果好hello I硅谷AB啊BB,那接下来呢,这样。我再去测试一下CD到范奥斯里边,我艾。CCC,然后呢,传到里边,我得保证改完源码之后,这个东西能用是不是。对吧,先我们得传出一条数据,得测一下走。好,那我们这边等着他稍微有点慢啊,敌人启动的时候可能直接读取,因为他有这个时间嘛,CCC是不是能消费到,说明他要加S的功能是不是好的。
13:01
对吧,那接下来我给大家看啊,看什么事呢,我给他改个名字MV file1,我为了跟刚才FILE2呢也不冲突,虽然其实我已经把那个监测文件都删过了,其实改成二也没关系,那我为了防止冲突,我改成FILE3没用过,对吧,这次启动根本就没有见过FILE3,好,那这个时候呢回正。啊,回车。那我们这边等着啊,刚才CC看这个数据会不会重复。没有了。没有了。对吧,好,那这个地方呢。我要测一下这个东西还能不能用,对不对,我在艾克一个什么呢ddd。然后追加到。FILE3。追加到三啊,我们看这个东西功能得还是好的,你不能说因为你改源码之后功能就有问题了,走一下。
14:00
看只消费了谁ddd数据完全没有重复。啊,所以有这两种解决方案啊,有这两种解决方案是这样子的,对吧,这是我改过源码的一个点。啊,就是第二个就通过改编法的方式,好之前我记得有个同学问了一个问题,问了什么问题呢?呃,问了说那我要是改的这个名字跟之前不是以file开头的呢。对吧,那这个时候我问大家一个问题啊,比方说每天的数据叫have.log。我叫have.log可以吧,叫have.log好,你不是说凌晨会更名吗?更名之后不叫have.log。Go。什么2021杠零八杠二零。像二零这样的东西,好,那有同学可能想到了,我能不能这样做,怎么做呢?来看啊,大家思考这个问题啊,Cat job底下test,我把监控的文件我直接写死吗?你不是会更名吗?have.log,加日期吗?我直接在这写have.log。
15:07
我不要什么正则,我就写此监控这个文件,那你更名了之后,我不也读不到了吗?而且第二天你会又生新生成一个have点呀。对吧,新创建的文件IO的值不一样啊。那这种方式看起来可以吗?既然我这样问了,大家其实都知道肯定不可以,但是大家想一想,为什么,他为什么不可以?偏一量。偏移量什么意思?能不能说具体一点?这个我直接把文件写死,我就监控这个文件,因为你每天生成的文件都叫这个名字吗?然后再去到了凌晨的时候更名吗?那更名之后我不读了不就行了吗?你用的咱们之前用的是正则fair点心,只要fair开头的都读,会导致这个问题。
16:07
对吧,有同学说我改个名字完全监控不到的不就行了吗?对吧,那我就换句话说,我直接监控have.log。我不要什么正则。这个为什么不行呢?还有其他同学有有想法吗?可以说一说。零点漂移,对了,包括陈总说的,如果这个时候,比方说现在是二二十三点三十分,这个任务挂掉了。好挂掉了,呃,他这个时候还是不是叫have.log当天我们监控的文件对吧,那接下来这个30分钟数据是不是接着往这里边写。往今天的文件里面写好,到了24点,也就零点。这个have.log是不是注意这个文件啊,变成了什么?2021杠零八杠二零。
17:03
根号零,那接下来零点的时候是不是又新生成了一个have.log。这个是一个新的文件,I know的值文件名一样,但是I know的值不一样,对吧,但是这个时候它有什么问题呢?就是重启之后,由于只兼控这个值,那刚才这30分钟的数据是不是就丢了。这个30分钟的数据是不是就丢了?大家想一下,能理解这个意思吗?能理解刚才我所说的这个意思吗?所以不能写死,只能写正,则还得把这个老的数据监控过来吧。对了,还得监控过来啊。所以呢,对于。T source监控日志的这种啊,除非你往一个文件里边写,这个文件不会更名对吧,那无所谓了,我就一个文件不会新增,人在生产文件当中,现在的日志啊,都是会滚动的,按天滚动的,每天呢一个每天一个,按照这种方式。
18:10
对吧,好,那这个地方只有两种方式,一个呢是不使用更名的框架啊,使用不更名的框架就是log back这个东西啊,它是这样子的,假如说比方说have.log他今天他直接就叫这个名字。到了第二天这个文件创建的时候呢,它就叫这个名字。直接就带了这个日期了,Log bag,你翻译一下,你们之前的离线数仓那个日志打印,你绝对不会有一个什么点,Log,所有的东西都带着后缀,并不像刚才我们给大家看的那个卡夫卡一样,不一样啊,这个要注意一下,它是完全不一样的。啊,他是不一样的,OK吧,这是我们所说的一个事情啊,一定要注意一下,他S没有表面上看着那么优秀,对吧,他可能会存在一些问题,而且这个面试的时候可能会问啊,行,那我把这个。
我来说两句