00:00
要中间能休息一会儿是比较合适的,但中间没有啊,好,咱们接着走吧,呃,我们现在去搞一下这个后边这个卡夫卡到HDFS的这个路。啊来,那现在我们来分析分析下,后边那个咱们怎么去进行配置是比较合适的啊。是吧,呃,首先咱们先从这个整体的这个配置上来说啊,首先第一个我们目的就是要消费卡夫卡的数据,所以说咱们第一种方案可以直接使用卡搜索啊,然后后边呢,来一个h hi think中间呢来一个随便来一个title就行啊,那数据我就很显然就能够顺利到HS了,或者是大家可以也可以使用什么呀,也可以使用第二种方案直接诶这个卡夫卡channel那卡卡,然后呢啊再来一个HS think卡,那数据同样能写到HS啊,这个是没问题的啊,感兴趣的同学呢,可以诶不不按照咱们文档这个配置去走啊,按照什么呀,你就按照咱们这个前面说的这种卡卡拆H2这么做也行啊,好,那一会我演示下边这种啊。
01:02
行,那咱们现在把这个大体的框架先说了一下啊,然后接下来咱们来分析一个问题啊,那卡夫卡这个S,你就让他去,相当于是一直不断的去消费卡不卡利的数据,这个应该没问题对吧?啊,那大家注意观察思考一个问题啊,思考什么问题主要是后边。啊是后边那是不是得有h think啊,那h think咱们是不是正常是需要将一个这个数据写到HDFS上的一个路径上面啊,对不对,那现在咱们就来琢磨琢磨这个路径的事儿。啊,就是咱们的数据我写到hfs,哎,它的路径结构应该是什么样的是比较合适的。啊,大家把这个做完做了啊,假如说我写到一个固定的路径啊,就一直都写到一个路径啊,一直往一个路径里写啊,那就这样合适吗。合适不合适,合适不合适怎么去衡量啊,得看后边咱们是怎么去用这个数据,对吧,咱们后边数仓是怎么用这个数据的,咱们是离线计算啊,离线计算咱们是不是相当于是批处理啊,啊在咱们这一批指的是什么?指的一天的数据对吧?啊也是后续我计算的时候呢,我需要啊一次性计算一天的数据啊,一次性计算一天的数据啊对不对,那你说咱们后续就是咱们数据放到HTFS上怎么放是比较合适的呀。
02:24
啊对,按天去分开存储是比较合适的,对吧,那就是咱们那个路径呢,应该怎么办啊,那最合理的一个路径啊,应该是啊一天一个路径,一天一个路径,一天是不应该是这样是比较好的呀,对不对,那后续啊,那你比如说哎,我要算哪天的,我直接哎找到这个路径,把这一天的拿过来就行了啊想算哪一天就拿下一天,哎是不是这样是最好的啊,那这样一来的话,那就得想一想,诶怎么能够实现我的数据写到HDFS上之后呢,是诶一天一个路径怎么能实现这个问题。
03:00
来实验这个效果。咱们能实现这个效果,咱们得去看啥。得看HD think对吧?啊,那所以说我们现在找到这个附中来来找到这个document啊,这是咱们最新的user get要1.9.0没问题对吧,那我们先搜一下啊,咱们找到HDFS来think走走走来来到了h think了,对吧,来到HSZ,首先我们就会看到这么一大串的这个东西。啊,还记得这是什么东西吗?啊,时间转移序列对吧?啊,转移序列啊,那这个先先放着啊,这个大家能想起来最好,想不起来也无所谓啊,一会儿咱再说啊等往下走,现在咱们要配的是那个路径对吧,对不对,那要配的是路径,配的是路径,那应该找哪个参数。是不该是他at pass对吧,那h t pass指的就是咱们路径啊,但是这个路径你要在那配的话,你不直接写,那肯定是一个什么死的,肯定是固定的啊,那你的这个相当于是我们那个所有数据就全跑一个路径去了,那你拿其实不方便的对不对,这时候咱们就应该用到谁呀。
04:07
就是上边咱们看到的这一串一大串东西了,这就是所谓的时间转移序列啊,那这里边儿每一个符号都能够转成一个这个具体的一个时间啊,比如说咱们举例子,大家熟悉的,比如说这个括号H,这相当于是啥。代表的是小时,它能转成从零零到23对不对,那下面呢。下面还有谁,比如说再再找一个这个百分之大S,这应该是啥呀,这是苗对吧?啊,这苗百分之小S呢。这应该是一个时间,时间窗对吧?哎,时间窗,那接下来咱们再来看一看其他的啊,比如说有没有什么年月日什么的,有没有有吧,这个是相当于是年啊,年巳位的年啊,四位的年啊,然后后边呢,我们还有这个什么月啊,这个是月啊,这个是月,那百分号D一般就是就是那个日对吧?啊也就就是啊,也就是咱们年月日其实都有,对不对啊,那这个叫做转移序列啊,那什么叫做什么叫转移呢?什么叫转移。
05:05
啊,就是OK啊,我在咱们这个路径上啊,这个pass里边我可以写成什么,比如说我写一个百分号。哎,然后呢,再写一个百分号M,再写一个百分号。定。对不对,咱是不是可以这样去写这个路径啊,那这个路径最终会被怎么样呢?会被转移成一个具体的年月日。哎,这就是这个转移序列它的一个作用,呃,这个怎么大家没动静呢,之前这个用没用过用过呀,对吧,用过怎么还这么陌生的感觉呢?来,那这个是不是相当于我们就可以在这个咱们的这个pass里边去使用咱们上边给大家提到的这个转移序列呀,对不对,我们比如说想按天去分来分这个路径,那咱们就用啥,就现在是百分号2Y100分号M100分号D年月日就行了,对不对?那现在问问大家一个问题啊,那大家都知道,我这儿如果路径上面写百2Y100分2M百万D,最终肯定会转成一个具体的年月日,对吧?但是大家有没有想过它是根据什么去转的?
06:14
啊,就是我随便写个YMD,那到底是转成哪一年哪一月哪一个日呢?这是怎么来的呀,根据什么来的。还能想起来吗?实际上是根据这个来的啊,它是根据认真听啊,是根据我们一个event当中的啊,然后呢,它里边的一个hi字决定的,因为疑问是不是分为hier和body啊,对不对,根据一个hi原呢,其实就是根据一个K为建筑决定的,对吧,那它的K是什么呢?K是time step。啊,Time STEM,就是timk,就是这个是固定的啊,也就是这个flu,这个hi I think呢,它会干什么呀?它会从疑问的当中去找time STEM这个哎,Header,然后找到header之后,它会读取它的value。
07:04
啊,你的Y6应该是一个什么呀,Y就应该是一个时间戳才对啊,应该是一个时间段才对啊,那这样一来的话,它会怎么样,你这个时间串啊,它是哪一天,他就会把你这个问放到哪啊,放到哎这一天的路径下边。啊是这样,比如说我这个时间庄,诶,我转成年位日制之后,比如说是2020年零九杠幺五,那它就会在HDFS上去创建一个对应的2020,哎这个呃,这个0915这样的一个路径,然后把这个event放到对应的这个路径里边去。能理解吧,啊,那也就是说,哎,我这个已问他到底会被送到哪个路径,是由已问当中的这个一个heer决定的啊,这个heer k就是ten step啊,那当然根据它的Y6决定啊,跟那Y6决定。啊,这是咱们这个最基本的原理啊,那现在问大家一下,那我们一个普通的event当中有hier吗?有这个time STEM吗?没有,那没有的话那怎么办啊?哎,对,好几种方案,我们可以写拦截器对不对啊,拦截器你可以想加什么时间窗就加什么时间窗啊,或者说还可以怎么做呢?
08:15
哎,对,有一个参数啊,咱们这有个什么参数叫做这个啊,看一下hfs.use local time stamp啊,叫做使用本地时间串对吧?啊,那这个参数首先先说一下它的作用是什么啊,它的作用就是会往咱们的疑问的当中加上一个这样的header,它的K就是哎,Time sta啊,但是value呢,就是本地的一个时间串,什么叫本地时间串啊。这个本地指的是哪啊?本地人在哪?是这样的,再想一想我们啊这个这个h think是不是肯定属于一个进程啊,对不对,那进程是不是肯定运行到一台服务器上啊,对不对,那这个所谓的本地的这个时间窗指的就是所在的这个服务器上面了系统时间。
09:09
啊,是这样的啊,也就是说,如果说咱们把这个参数设成to啊,那咱们的数据进入到哪一个路径是由谁决定的呀?四由104,因为咱们一会这个数据是不是要写到幺放到104上,这个对吧,是由104这台节点上面的这个本地时间决定的,那就是说如果说这台节点上时间是9月15号,那我的数据就跑到九月15的路径啊,是16,那就跑到16的路径了。哎,那大家只是觉得这样合理吗?这样显然是不合理的,对不对啊,显然不合理的啊,那要不合理的话,那咱们应该怎么去解决它呢。那是不是只能采用咱们那个拦截器了呀,对不对,大家回忆一下啊,我们在那个的日志,我看能不能找到一条日志啊诶。哎,在我们辅助采集过来的日志当中,就是甭管是启动日志还是页面日志,咱们最后是不是都有1TS端啊,这个是不是有一个时间串在页面里边,那它指的是浏览页面的时间,在启动里边呢?它指的是启动的时间,对吧?啊对不对,那咱们这儿可以怎么做,是不是就以它作为那个timetemp的Y6是最合适的呀,对不对?那我页面哪天浏览的,我就进到哪天路径,那我这个启动是哪天启动的,我就进到哪天路径,是不是这样是最合理的啊,是这样的啊,那所以说一会咱们需要去实现一个这样的拦截器啊拦截器啊,那我先把视频录一下。
我来说两句