- 00:00 - 啊行啊呃,那我们看回来,我们再来看这个来截器,因为上午呢,我们已经把简单的来用一下,如果说这中间还有一个这个复制当中的一个多路复用money,我们还没有看法,我们说了要结合着什么兰截器啊,结合着兰器来做,那我们的需求是这样的,其实也是很多时候生展环境当中的一个需求。就类似于什么样的,是这样的,因为大家知道我们生产环境当中那个日志啊。一天生成一个对吧,那这里边的日志是不是有你的点赞日志,评论日志,浏览日志,还有那个什么宋老师海口人参丸的悬情日志对吧?有很多种类的日志了,它都是打在一个文件文件里边的,那这个时候你通过服用给他采集上来。那你是不是要做分类呢?最好的情况下,是不是我们在进到汉之前就已经把这个数据分类好了,因为你不同的日志,它所有的那个列应该都不一样了,因为不同的日志它里包含的字段肯定是不一样的,这个能理解对吧?不可能说所有的日志我字段都是20个啊,就算你都是20个,那里边包括的字段具体的内容也不一样吧,我评论日志里边肯定是我评论的某些商品对吧,等等,还有悬停日志肯定有悬停了多长时间吧。 
- 01:21 - 对吧,悬停了,哎,移走了,它产生医疗日志,那悬停多长时间,也就是说它里面各个字段不一样,那在生长环境的时候,我们就需要按照日志的一个不同,将不同种类的日志发到不同的地方,参数最简单一点,我们希望放在不同的HD文件夹里面就可以了。对吧,我们是不是希望做到这个事上,放在不同的文件夹里边能听懂。对吧,啊,我们要放在不同的文件夹里边,那你提前既然你能把这个数据啊来看,原始的都是在一个file里边,现在呢,最后到HDFS的时候,你要放在假如说就两个是这两种啊,放在两个文件夹。 
- 02:02 - 既然放在两个文件夹,什么东西就是两个了。是不是?对吧,哎,是single OK,那有发题想到了,那我用China对接两个single,这可以,但是你能做到按照这个数据的分类来去这个数据吗?不行,对吧?哎,那这块我们之前说了可以用China选择器moneyleing是不是来做这个事啊,对吧?哎,就是我们要通过这个地方multi要做一个事,而且生产环境当中大部分的时候呢,也这个做的OK,这个时候呢,就要用到我们这个自定义的拦截器啊拦截器好,呃,那需求分析是这样的。嗯,在实际开发当中呢,也说了一种服务器呢,有很多种不同的热放到不同的系统,呃,就会用到我们刚才提到的啊,根据的一个某个K的值,将不同的even放到不同的channel里边,既然能将这个日志放到不同的channel里边,那接下来放到不同的地方是不是就简单了,我放在不同的think不就完了吗?对吧?哎,我用不同的think就够了啊,就够了啊,那这个案例呢,是这样的啊。 
- 03:09 - 案例中的这个无所谓,就是案例的一个需求,但是这样设计的,可能我们写的时候改一改也无所谓,就是这里的需求量的,呃,以端口数据模拟生产日志。那应该是什么样的。那开吧,哎,S第一层S,然后呢,根据它是字母还是数字。啊,就这意思什么呢?什么东西呢,就是根据它是首个。首个单词啊,或者说是一个字符吧,假如说我们传的所有东西都一个字符,然后呢,根据它是呃单词还是字母。字母还是数字来发到不同的里边,这个随便定义的一个逻辑,对吧,生产环境当中就根据你这个日志的什么。类型啊,根据日志类型,那这样吧,这个可能大家不好理解一点啊,那我们这样改一下啊,呃,我们俩如果说这个传来的数据当中包含他们。 
- 04:10 - 我就把它发到。Hello啊,对应的一个C,如果另外一种情况就是不包含hello。我就放到另外一个里面能听到,就是你传到数据里边看有没有哈,这个啊,就用萨斯这种方式。Stream有一个content这个方法嘛,对吧?啊,看它是否包含hello,我们把这个逻辑呢,简单一点啊,不是什么数字啊字母啊,这个啊,那这个呢,就是看包括包含hello,因为在生长环境当中,你不同的日志里边它有特殊的字段。或者说他传过来日志里边有一个字段叫类型,这个类型标志的它是加载日志的数据,还是说他是浏览的日志,还是评论日志,还是什么订单日志,购买志等等啊,它会有一个专门的字段来记录这个内容,那我们要根据字段来啊,我们就以hello,到时候我们生成的数据呢,写hello word或者写word对吧,这两种啊,发到不同的一个地方啊,做这个事了。 
- 05:08 - 好,那接下来。我们需要自定义啊,区分这个时候呢,因为按照我们的需求,不是区分数字跟字母了,就是区分包不包含hello对吧?哎,包不包含,或者说它就对股也可以啊,无所谓,将其发送到不同的这个分系统啊,这个最后面是我们所讲的分析系统,但是在同一个A顿的里面应该发往的是不同的。Channel对吧?哎,发到的是不同的channel里面是这个意思,然后呢,我们看一下整个的,刚才呢,我们是说了一下,呃,第一层的一个source channel这块一个内容,然后我们看一下整体我们的一个需求,我们希望怎么做啊。第一个。控制台实时产生数据发往某一个端口,对吧?啊,假如说我们还是用五个四这个端口啊,五个四这个端口,就之前的那个逻辑,就是字母啊数字啊这些东西啊,发字母数字那这块我们改了啊叫hello对吧?啊看有没有包含hello OK,然后呢,通过这个。 
- 06:09 - 将我们这个数据端口数据给他接收过来,传给麦阿罗,阿罗。啊,OK,那这一块memory China。要注意了。这个China,如果说我单纯的这样写。那你这个东西只能配什么?负载均衡。或者。故障转移对吧,所以这一块我们还要改吧,我们要改OK,那继续往下走,诶这块呢,是假如说是字母的。这是假如说是数字的对吧,就是我们的逻辑呢,这块呢,包含hello的这块呢。不包含hello的对吧,好,那这块呢,就要用到我们那个什么。Multiplaing也要用到这个拦截器啊,也要用到拦截器,这是整个的我们那个需求啊,整个需求重点呢,在自定义拦截器这块啊,自定拦截器这块OK,我们来看一下这个自定义拦截器啊,首先是这样的,因为我们没用过在配置文件里面没配过拦截器,对吧。 
- 07:12 - 而且呢,也没有去用过啊,没有去用过,那我们来看一下。CTRLF。Inter t CE p括号。指定一个什么拦截器,那我们看一下配置文件里面能不能找到关于有没有配置文件里面写相应的一个内容。你找一下。这个还不是我们想要的,因为我们要的是具体的一个内容。找一下这个吧,那我看有没有那。这个。大家开始搜啊这个东西,呃,配这个拦截器啊,这。我们得找一下拦截器的一个例子啊。 
- 08:00 - 他没有。Int啊CPQ啊,哎,这块有太带这个是什么系统那个拦截器的一个例子,OK,呃,这个地方因为它是系统内置的,系统内置的它这样配的。来看一下。系统内置的,也就是说你要配拦截器的时候要注意。给拦截器一个什么名字,那你看到这种,然后下面这样配这儿可以给什么多个形成拦截器面,然后接下来指定你拦截器的什么。类型啊,指定拦截器的类型,这是拦截器的一个配法,这是系统的,但是我们呢,诶,但是我们写完了之后,大家猜一下这应该写什么东西。我们因为这个时间桌的拦截器是他自己的吧,就类似于我们看到写的TDRNE等等这些东西,那如果说我们自定义完了,这个地方应该写什么呢? 
- 09:07 - 我们要写什么东西,这个地方他就能找到我们自己写的那个代码。全类名对。啊,它也是同样的,通过反射去找到,也就是说我们把拦截器写完了,你放在idl里边,它能用吗?上能用吗?用不了了,你要做什么事啊。打包对吧,哎,打包扔到集群,然后在这块呢,配上全类仪,然后它同样的通过反射的方式去找到我们所说的点能听懂。啊,这是这个我们要注意的啊,我们找一下它自定义这样吧,呃,这个呢,因为是这个用户文档,我从从这个里边找一下啊,在这开发者文档这里边看一下有没有那个拦截器。搜一下ctrl CE。 
- 10:04 - in.OK呃,这个是probably put,它在这个是代码里边的一个东西。找一下它的一个配方啊,就是说自定义完了之后去它的一个配方。不好找了。不好找到这个东西,哦对,只有十个又回来了是吧,说这个回来这个是他在代码里写,我们还是从那个地方找一下,这个就比较,因为那个里面关于拦截器的东西比较多啊,我就想通过这个地方来找一下,看能不能找到,因为他盖考察水看到没。呃,这里面它有那个有一个配方。关于那个我们所说的自定义的那种。啊,自定义的内容,它有一个配方。我们来找一下。嗯,这个太多了,197个是吧。就很多,哎,明的这款这个这个才是真正的。 
- 11:04 - 你看他这个配方。对吧,我们来说,因为time STEM,它属于什么呢。首先说是属于系统的,那这块呢,这个塞斯这块就教你如何自定义的来看一下,他说你这个class要实现什么。这个接口你无论说自定义什么内容,一定要跟人家系统里边的东西产生关系吧,对吧?啊,要不然就继承人家的什么抽象类,要不就实现人家什么接口对吧,相应的内容,然后你实现完了之后,你看一下他假如说实现完了这块就能看到它可以定义多个什么。看到没,然后分别配一是谁是谁,然后根据什么来的。这个一看就是自定义的。 
- 12:00 - 是另一个。啊自义的,然后你发现自定义的后面还要加一个什么。Dollar builder。啊,这个呢,是它里边的一个静态内部类,你要自己写上的静态内部类就是帮助你构建当前这个拦截器的一个对象的。这里面一个代码很简单,就用一下你写的那个拦截器里就OK了啊,生成它这个对象,生成到对象,OK,那还有其他的内容,就是我们要实现这个接口所要写的内容吧。对吧,因为这个实现这个接口之后,你1AL加回车,它会告诉你要实现哪些方法,对不对啊,他会告诉你要实现哪些方法啊,实现哪些方法,那我们猜一下它大概率要实现什么方法。拦截。拦截器。你看一下拦截器这个东西,他是不是跟我们之前所提到的什么卖呀呀,还有那个UDTF那种感觉很像。 
- 13:08 - 启动一次。然后中间会有一个方法被循环的调用,不停的拦截这个事件嘛,对吧,然后肯定还有一个什么close方法类似的,对吧,假如说我们猜一下这种内容吧,啊等会我们可以看一下,好的,我看一下那中间那我们猜一下最核心的就是那个被循环调用的这个方法对不对。那你猜一下这个方法的传入参数是什么?事件,那输出参数呢。还是事件,对了,还是事件,因为拦截器你传进来的我拦截的事件,我希望对这个事件增加一点东西,或者给他过滤掉,做这个事的对吧,那它传进来的事件,传出去的函式事件啊,函事件好,那这个呢,是我们整个的一个需求分析啊,需求分析我们还是按照我们刚才所定的,就是看这个字母传当中呢,带不带什么。 
- 14:06 - Hello,啊带哈来OK,那我们把这个解一下这个。 
我来说两句