00:00
CD出来出来之后再来B这个我们就快速写一下了,用NG叫A-c count-NA3对吧,来看啊是不是A3啊,对吧,所以说你这个名字跟这个保持一致啊,你不能随便写啊,A3-f job底下有一个from叫TDR的一个到HDR,而且呢,上传到HDR是不是叫UP2还记得吗?嗯,没问题吧,好,那回去。回车号以后呢,刚才我们所写的两个目录,他现在说这个目录不存在,对吧,因为他已经开始监控了,说目录不存在,那我们赶紧干什么,创建一个make个Di,一个叫log,诶不是叫斯对吧,一个呢,斯二斯里边我把这个拿过来啊,对于赛斯里边我们放的是不是赛这个目录啊,这个文件对吧?CD的赛斯里边它是一个。
01:05
嗯,以fair中间有fair就行了,那我们叫fair一点加C对吧,然后呢,E一个hello追加到我们hello啊不是在第一点里面去啊好这边有了,有了之后呢,我们到这来。IDF,我们进到那个所谓的阿LO2这个目录,对吧,有没有有了吧,生成了二零一三十五点开这里面数据我们等20秒,也不用等20秒了,因为刚才时间都已经过了一点,对吧?呃,那这里边数据呢,其实你都看得到,这是六个字节吧,这边呢,六个是吧?啊其实就是刚才那个数据好20秒过了它就干什么还是一样的,这是HDFS的一个特点,这而且呢,它支是动态。往里刷新啊,然后艾克,呃,假如说我这里边呢,再来一个什么I的硅谷,我再追加到这个fair1.tc里边来到这就查看,稍等一下,还有点慢是吧,是不是又来了,对吧?啊,又来了,这是我们看到的,那同理我们应该还可以进到FILE2里边去放log文件,带al log的是不是就可以了,二里边我们是不是正则写的带log呀,对吧?好,那我们touch叫log.tst啊I克一个还是hello啊,追加到我们log.t我先看一下这个文件啊,有没有好,这个先成了完整的文件吧,那我们再去放数据,如果能监控到ID,是不是应该会给我们创建一个新的文件。
02:44
没问题吧,啊,因为刚才那个文件相当于过了20秒已经写完了,对吧,走做完以后呢,稍微等一会,因为太阳S呢,它会有一个时间的一个延迟过来了。对吧,这这个里面是不是hello啊,这个里面是什么数据啊,爱的硅谷吧,123,我们看一下啊,是不是爱硅谷对吧?当然如果说你在20秒以内各个文件都在写,那么它就会还是一样的,放到什么一个文件里边啊,放在一个文件里边,你刷新20秒过了它六个是不是刚才是hello啊,在这我们是不是传了一个hello啊,对吧?啊是这个数据啊,也是六个字节对吧,所以呢,跳S呢,就能实现监控多个目录,多个文件,对吧,它能监控多个目录,而且呢,是不是动态更新的数据都可以。
03:33
对吧,我们刚才做的事情是不是说放一里边TC我们做了创建,放了两条数据吧,对吧,先放了一个,再放了一个,他都能监控到,那是因为他能够做什么事呢?我们是不是保留了这么个东西position大家还记得吗?保留的信息我们看一下cat。我们总共是不是监控了有两个文件,一个是file斯目录底下的一个FILE1,一个是2LOG点向C对吧,它把这个位置信息position到14,哎,这个position到六,这个就是位置信息。
04:10
对吧,它就是所谓的我们的位置信息,但是这里边啊,它有一个问题,问题在于哪呢?我们看啊,我我们我把这个阶色拿出来,我把它放大一点啊,在这个里边我给他看一下。我们想的是不是说你按绝对路径去给我们保存这个位置信息就好了,但实际上我们把这个阶层看一下啊,回车。他这个阶层当中呢,有这么三个。数据对吧,一个是ino的值,有没有同学知道ino的是个什么玩意节点啊,看名字挺像的,讲过吗?啊,讲过是吗?啊,那我们提一下,就是说它指的是Linux文件系统当中每一个文件的唯一标识。
05:10
也就是说更名操作I的不会电。你可以MV改名,但是ino的值不会变,除非怎么样,你把这个文件删了,重新建一个这个文件变I的值会变,它是linu的文件系统当中唯一表示一个文件的,好,这个position就不用聊了吧,刚才我们是不是先放了一个hello,再放了IV5 hello是六,I5是八,所以说它读到14了,也就是说保留的是自节数,对不对啊好,那么接下来呢,这个是不是当前你监控的文件的绝对路径,对。对吧,好,其实在父母当中默认情况下啊,它是根据I诺的值以及绝对路径共同来保存一个position,也就是说如果你这个文件I的值变了,那当然是你把它删掉重新创建的,对吧,或者说绝对路径变了。
06:03
名字主要是名字对吧,名字变了他也会重新上传。他也会重新上传我们试一下啊。因为刚刚我们说的它是根据这两个人,就相当于这两个作为联合主键指向它的,那联合主件当中有一个发生变化,是不是主键就变了呀?没问题吧,好,那我们来做一个测试,现在呢,Form里边在这个地方是不是没有新数据,因为我没有动过,对吧?那接下来我们做一个什么事呢?CD到file所谓的FILE4里边,我把file一点开改成三二,MV1改成三二,走刷新啊来了,重新上传了。对吧,重新上传了这个就其实是太阳电压source当中很严重的问题,而且它是多大呀,14,因为刚才那个文件是不是14之前我们上传的是不是分两次,现在一次哎,读过来了,因为20秒以内我读完了嘛,对吧,那我们说为什么说它问题很大啊,来我们结合着一个东西来看一下。
07:15
当时我们在配这个logo键的时候,好像跟大家提过logo缩键,他这玩意打印日志怎么打印的。你看这个地方。今天的数据是不是放在这have.logo它到了,如果说have是一直运行状态,它到了凌晨12点的时候,它会把这个have.log改成2020杠幺零杠三幺,然后重新创建一个have.log。啊,重新创建一个,那也就是说拉创建里边会做什么操作,更名操作。
08:06
那缩这呢,他会给我们日志打印的,日志会做跟屏操作啊,对吧,因为你看之前的志是不是都带了这个后缀,今天的没有吧,假如说你回去看你明天的你把have一起,你会发现多一个have.log杠二零啊点2020杠幺零杠三幺,而且呢,你在启动之前,你先记录一下当时这个have.log的大小。然后你一启动have,你会发现这么大的一个大小变成了,就刚才我们加后缀了,它又生成了一个焊变文件,肯定很小。因为是当天生产的好,那么这个时候就有什么问题呢?如果说我们用tell source来监控生产环境当中采用了log界这种方式打印日志的。框架。那么是不是到凌晨的时候,怎么样会重复读了一次数据?
09:03
对吧,那有同学有没有想现在有没有什么方案来解决一下这个问题,就现在你看到这个地方,那我们我问一下大家,那咱们能不能这么做,那我我就不监控一带点点log了,对吧,我就写死我监控就监顾你看点log狗,那你更名之后,反正我也不监控,这种方式行不行。是不是看上去挺好的,仔细想一想,有没有坑,没有坑是吧,就是面试的时候人家问你有没有遇到问题,没有遇到过,没有优化过吧,没有遇到问题。我就写死,我监控焊点log。会不会有坑,大家想一想,肯定有坑啊,我既然这样问了,是不是大家在想坑在哪?接测原来位置肯定不会变啊,我这个号点log是新生成的,I的值变了对吧?啊,就绝对路径没变,但是I的值变了,它肯定是一个新的阶层数据了,对吧。
10:18
因为这个have点老,每天会生成一个新的,就I的值会变成一个新的,它会有什么问题呢?我们之前说过,就是对于跳source,它有断点续传的功能,对不对?那万一我们起死监控到have.log你想想看,假如说今天晚上10月30号,31号晚上,他在11:30的时候,这个任务挂掉了,可能到了第二天我们才看到,才把它提起来,那么那半个小时的数据还能监控到,监控不到了,因为你再次启动的时候,是不是还是在监控have.log。但是我昨天监控那最后半个小时数据已经更名为have.log点2020杠幺零杠三幺了,对不对,是不是就相当于会丢数据啊,那本来我们用TL source想要它断点续传,最后由于你挂掉了,第二天起丢数据了,这个是不是也不太合适?
11:13
对吧,啊是这样的情况,那怎么搞嘞。两种解决方案,在生产环境当中,第一种第一种去找写后台的人商量,不要用这种按天就是说会更名的这种打印志框架,其实打印日志框架还有很多,其中有一个呢,就是log back,叫log back这个框架打印的日志呢,当然还没学啊,项目当中我们会用,但这个我们得在S这给他讲清楚啊,它有一个log bag这个打印日的框架啊,后面呢,我们会去用啊,它是怎么打印日志呢?他这样的当天生成的时候就自带日期后缀,他没有更名操作,那这种是不是问题就解决了,你不更名是不是就好了?好还有一种解决方案,这个是要你跟后台去商量,但是有的时候后台那边比较强硬,说我就不给,公司当中很有那样的,而且特别是可能你你所在部门,你大数据领导之前就有一个学生就是从Java整过来的,他帮着Java组说话。
12:22
对,这大数据组跟张化组讨论事情的时候,他帮助张化组,因为他张翰那边过来的啊,所以就就会在工作当中遇到这种奇葩的人,对吧,或者说后台他不给你改,就说我这个人的打印挺好的,也没有问题,对吧,一天生成一个文件不挺好的吗?那我们能怎么怎么办呢?刚才我们说的就揍他是刚才我们说的,他的问题主要出在他是按这两个值怎么样啊,去标示一个位置信息,如果说我们能只按这个I的值,那你根名是不是不受影响。因为更名不会更改的值,刚才我说对吧,所以第二种方案修改,源码修改。
我来说两句