00:00
接下来给大家演示一下这个压缩啊,这个compassion的一个效果,并且这里有一个坑,我们前面提到过,如果你没有注意,那真的是特别坑,那行吧,那我们现在先准备一张表,T3。那大家注意啊,啊,你看我这个在线压缩开启,压缩调度计划开启对吧。然后呢,我指定策略为次数commit之后呢,我使用的是德尔塔。两次,也就是说我每两次提交就要执行compassion,那就应该将老的PA或者没有和新增的那些点log合并成一个新的pack文件,那我们其实去观察HDFS就行了,对吧?好,那我们来试一下。我建这么一张表来so tables,那这里有我们前面创建了一张source,这个是不是数据生成器啊,对吧,那现在是一个T3,我们指定压缩的参数,那我现在它原先我们是一秒生成一次,那现在我希望是。
01:11
啊,比如说五秒生成一次,那么大家看啊,那我想修改表的参数,是不是在对应的这张表后面加上一个hes暗示就可以了,对吧?那你看我把这个参数改为五秒啊,每五秒生成一次,但是呢,你如果直接拿去跑,它会报错来看一下。他会什么呢?他说是这种性。只能什么必须开启一个参数,叫做什么动态表选项,要把它开启啊,那之前我们写在色into的表后面就没事,是不是啊。那如果是呃,这种select from的话,是是要开这个参数的,大家知道一下就行,就算你不知道,你执行之后报这个错,你把这个参数名拷贝过来,哎,你set一下等于two,这不就OK了吗?那后面你再执行这个circle就OK了啊,那这个参数我已经给你写过来了啊,写过来了。
02:09
好,那接下来我们是不是要观察这个现象了,来。我看一下啊。看一下刷,哎,TP蝴迪link现在只有T21张表来,我准备回车了。让他提交吧,啊,然后我们看一下这里的running job,诶这个已经启动了。那我看一下,我们现在是把它设置为一个并行对不对。等一会儿啊。那由于它是一个并行度,它跟这个think合并成一个了啊,就是有个ER啊。行,现在任务正常启动了吧,接下来看一下这里刷新T三生成了,而且也有点log了来,那么大家注意,其实每五秒提交一次,那是不是应该十秒钟就有两次了,那是不是就应该生成趴的,但是你继续等,哎,你等。
03:16
你等老半天,现在肯定应该超过十秒了吧。对吧?啊,那你观察这个地方啊,这个文件还是点log,而且这个大小它一直在往里追加,我们知道flink写的时候,呃,它有一个追加的机制啊,追加的机就追加在log文件嘛,啊前面简单提到过啊,你看现在是93K对吧,我刷。啊,已经一百一百三十三了,那说明数据确实在源源不断的写进来,但是为什么没有执行compassion明明是什么,明明是两次啊。对吧,你怀疑说是不是没有,那你看一下护底点护底元数据,你看这里摆明了有这么多德尔塔commit已经都是应该是好多次了呀。
04:03
你看再刷还在往里追加,这个时候你尝试的判断问题,诶发现这里也没有什么重启报错对吧,你点一下exception哎,没有一切正常,再点错误历史一切正常,那真的是正常吗?不正常,这个错误很隐晦啊。因为我们是异步的啊,所以它不会影响我们的主线程啊,主主程序啊,我们的主程序显示还是正常,你压缩出错了,那是你的事儿,反正我通知你去做了,能懂我意思吧,啊,这是异步的嘛,啊所以我们要怎么找呢?刚好我们现在任务比较简单,我教你啊,你点击这个comp。然后点击task manager.log就是你找到它所在的这个task manager,接下来你搜啊,你选中它日志部分啊,点一下,然后CTRL加F啊跳出搜索框对吧,你搜compassion诶,你会发现诶。
05:03
因为我把前面任务全停了,都重新启动了啊,防止其他任务的日志干扰我们啊。所以这个日志就是当前这个作业了啊,如果你有多个作业执行过,那日志就太乱了,乱七八糟了,你不知道是谁了啊,但现在是确定啊,只有一个啊,来,我说compassion,他这里说没有compassion计划,对第一次缺凿po对吧?好,这个还算正常,再往下,哎,这里发送了一个什么,发送了一个请求,也就是说他去调用compassion接口,让他去执行compassion是不是,那说明确实是执行了的,要执行了再往下。又是一个no compassion,再往下又发送请求,再回车。好,接下来就是什么。判断这个compassion的这个调度中的是否有了,这个是由调度生成的,就那个prime生成的啊,那个调度阶段生成的好,再往下FLY是不是执行中的。
06:04
对吧。而且你看在下面这一句执行comparison计划为某一个实例。对吧,为这个fire group的这个实例啊,我再跳接下来呢,是compassion的一些参数,你看最大内存可以用这么多啊,申请资源呢再往下。啊,最大的资源已经允许了,好再往下,哎,你发现这里有一个什么error。但是这个error并没有放到作业的exception里面啊,这个就很恶心了啊,你看他说执行compassion。For这个什么什么,他说什么no class。DeFine。Default error,也就是说他说累找不到,一般来说累找不到,要么你确实缺少这个依赖,要么依赖冲突了,那我们看一下它这个找的包是哪一个,不就是编译好的这个包里面吗?那你再搜一下这个类fire output format来。
07:04
CTRL加N搜索类对吧,好粘过来,那么可以看到这个是哪个包里面的。哈杜Mr client core3.1.3就是这个包,这个包明明有啊,我们不是,呃,Linux上已经引入了哈杜的class pass吗?讲道理是不是应该哈杜的所有依赖都能找到啊,啊,那没办法,他就是这样子,你只要是用雅恩session的方式,它就有这个问题啊,就是你这个哈杜依赖有问题,如果你用的是local或者是真的alone,那可能是不会出现我这个问题。所以这个地方我想强调的是什么呢?来还记得5.2.1在这里,我们在雅安session模式,当时我在做的时候是不是少做了一步啊,这一步不就是这个吗?Mr client core。我当时说了,我先不拷贝,为了给大家留下印象,因为有一些很深的坑。
08:02
那我们之前是做了这两步啊,启动session并且执行客户端没问题,前面都没问题,但一到这里就出问题了。而且这个报错你在UI还不好看,要去task manager看啊。所以呢,就是缺少这一步啊,同志们,来,我把这个报错截图给你们截一下吧。恩,我想想怎么做会好一点。放大一点吧。好。对吧,这个就是一个坑了啊,所以呢,我在这里下面给你写了一个注意啊,你必须要搜索task manager才能看得到啊。
09:03
行了,那接下来就是解决这个问题了,我先把原来的作业停掉啊。你看再确认一下,这个作业的exception是空的啊,这里也是空的啊,行吧,那接下来我们干什么事,那就把那一步做一下呗。啊,5.2.1对不对,咱们把这个依赖考一下啊。就是在你哈杜op安装路径下面的share哈杜op,然后呢,MR这个文件夹里面有这么一个架包啊,里面有这么一个夹包,将它拷到flink live下面来,我直接粘贴,因为我路径这个是我的嘛,客户端我退出了啊。好,接下来看一下例吧,你看这个包现在拷过来了。就是少这个包啊,依赖冲突了,那你放过来他就一定会用这个好吧,那接下来再进入客户端行吗?不行,雅安S是已经一个启动的集群了。
10:02
它的依赖加载是在它启动的时候加载的,你现在修改呃,放进来新放进来这个包,但你已启动这个集群,它是没有加载过这个叫包的,不行,所以我们得干嘛重启这个session集群啊,这个要重启的啊,我再提醒一下啊。好行,那我们怎么重启呢?我直接把它踢掉呗。我把这个session key掉好,那么大家看已经key了,这个时候呢,我们要重新去启动。呃,雅安三省重新启动啊。算你看。再等一会儿。好了。那接下来我们就可以进入搜狗客户端了。就之前的老命令啊,不多讲了,So tables肯定是空的,为什么呢?因为我们没有做catalog的持久化啊,啊行,那那这样的话我们就是什么呢?我们把这两张表再建一下啊,ST啊,还有这个T2T三都建一下。
11:18
那T3回到我们刚才那个压缩参数啊。把这张T3表也再建一下。好了,现在万事俱备了啊,一样的,咱们要执行这个对吧,还是一样改成五秒,那就先set一下,先把动态选项功能开启好,接下来注意了。为了避免影响啊,我先把T3给删了。啊,T3被我删了对吧,好,接下来我们要看了啊。提交了啊。
12:05
好,T3有了,哎,注意现在是五秒插入一次啊。生成一条,哎,你看这是第一条了吧。啊,再往里追加了一次啊。诶,你看这里有什么呢?也就是说这一次,这一次之后接下来就是什么帕。OK吧?那你看又过了两次之后,又会生成什么花虫?那你对应嘛,你对这个发ID嘛,这个什么ED8F。啊,1D8F1D8F1D8F对不对。这是不是同一个fire ID的新版本啊,那后面这个也是ED8F,这又是一个新版本啊,新版本。行。就不断的进行compassion啊。
13:01
你看又是ED8F对吧,这个你会发现这它是不是越来越大,我我先讲讲第二次趴回的啊,这个是怎么来的,这个就是将老的,这个是老的,还有它对应的一些增量啊,不管是哪一个凹线,懒能找将它们合并起来,合并成一个新的pocket,这个就是compassion,好吧。还有一些细节给大家演示了一下。注意啊。
我来说两句