00:00
然后我们再给大家来讲一下雅恩模式的提交啊,这个主要是在生产应用环境里边是比较常见的,刚才我们给大家测试演示的是stand lo模式,那具体在使用的时候大家也发现了啊,你如果说一旦要是没有足够的资源,你这里根据一直在那等着,一直在那等着,那等也没用啊,对吧,一开始我们配的这个集群,它就没那么多资源,那那你现在一直等也没没什么,没什么作用啊,那一般情况我们生产环境会把这个弗link部署在哪里呢?一般会用一些啊这种容器化的资源管理平台,像雅恩,像K8S啊,所以接下来给大家再讲一讲这些容器化呃的资源管理平台上面的部署,首先是雅恩啊,雅恩大家应该已经比较熟悉了啊,那这里边需要给大家说一句的是,在用这个雅恩模式部署弗link任务的时候呢,必须要求弗link是有哈多支持的版本啊,那这个在呃1.8之前。
01:00
啊,就是1.7几版本的时候,那当时的给官网给我们提供的flink下载版本,它后边就有一个对吧,就是加上那个哈普支持的一个版本,那个包会稍微大一点啊,你直接下载那个,然后直接就可以可以这个呃,部署在雅恩上了,但是从1.8之后呢,这一部分就剥离了,它不给我们直接提供这样的打包,这样的一个可运行的这样的一个包了,那需要怎么样呢?那就需要单独再下载一个,诶支持这个雅恩,支持这个哈杜op的一个组件,支持这样的一个库,那这个东西下载下来之后,我们一般情况。会把它放在哪里呢?哎,就会放在之前,大家记得我们下边有一个library lib这个目录,对吧,我们会放在这个下边。然后大家看这里边,我已经把这个下下来了,呃呃,这这里边我没有把这个放在当前这个,呃,一点十点一里边啊,我可以给大家看一下,就是一点十点零里边,我这里边是。
02:07
放了这样一个。呃,一点十点零的力对吧。大家看一下,在这个下边,我是放了当前对于这个哈杜op2.7.5版本支持的这个这个包的啊,所以大家其实就是在官网上把这个组件这个抓包下下来,然后放在自己的这个lab library这个目录下边,然后去运行就可以了啊,就可以有这个哈杜普的支持了。啊,那当然了,就是说这个对应的话,大家还是要有这个相对应的版本啊,这个版本最好还是要匹配上,这样的话才能保证运行肯定是没有问题的啊,那具体来讲,我们在提交的时候啊,在雅安上啊,那那启动的话还是呃正常这样的一个一个呃启动的模式是吧,就是那那大大家可能会想到,那我们启动class的时候还是去start classster吗?哎,不是的,你那个start classster是一个stand lo直接起弗link集群,如果说我们要把它部署在雅安上的话,那是不是相当于这个弗link集群应该由雅恩来起啊。
03:16
啊,所以接下来大家就要看一看弗link如果要在雅恩上去做运行,那又分成了两种模式。啊,这就是我们说的一种叫做session class模式,就是叫做呃,或者叫做绘画模式啊session模式,另外一种叫做drop模式,作业模式啊,有时候也叫做pro drop class,就是单独一个作业,一个class,一个集群这样的模式。从字面上大家可以理解的非常透彻啊,非常的明白,就是绘画模式是什么呢?就是我先在雅安上创建一个雅安session。然后通过这个雅安session呢,先启动一个flink集群,先把它提起来,然后接下来我就在这个集群里边去提交作业,对吧?那就是来一个job,然后提交上去,去运行,来一个去提交一个,呃去去运行,然后给他分配资源,分配空间,那在这个提交的过程当中呢,我们整个这个session里边本身有的资源是有限的,对吧?一开始我启动session的时候就应该是定义好的,如果说超出了这个范围的话,诶,那同样会出现就像我们之前做这个呃三模式部署的时候,一样会出现资源不够的这种情况啊,所以你必须要等到就是释放我们已经运行的那些job,运行完了,释放了资源之后,下一个提交的作业才能够有资源去运行啊,所以这里边其实我们呃,提交在一个雅session session里边的job,它有一个什么特点呢?就他们的资源都是共享的,相当于是对吧,那它适合什么场景呢?那就是适合,哎,你不要。
04:52
哦,像我们刚才那样,就是骑起来之后永远不烦,对吧,一直在那儿等着的那种状,那他会一直占着资源,所以它比较适合的是规模比较小,然后执行时间有限而且比较短的这种座椅啊,那你就是不停的来对吧,来一个,呃,运行一个,运行完了之后再这个结束,然后就释放掉资源,然后再运行下一个就完了啊,所以这就相当于是一堆job都放在一个集群上面去运行,有点类似于三模式啊啊,这是这个雅恩里边的这个session模式啊,然后这里边还有另外一种模式呢,与之对应的那就是pro drop模式,Pro drop模式主要就是说它并不会一开始的时候我们就先创建一个集群,而是什么呢?
05:38
我雅恩里边就去等待你提交job,你这个drop直接提上来之后呢,我再去给你按照当前的每一个job去创建一个flink集群啊,所以这个过程就相当于每一个job都会独占自己。的一个弗林克集群啊,所以不同的job之间彼此互不影响,他们的资源都是独占的,你这样的话,分配资源的时候,只要雅安那边有资源对吧,就是等雅安那边分配就可以,只要有资源拿过来直接用就完事了啊,那这种这种情况大家就会看到,呃,这个资源的占用就会更加的独占吧,独占独享资源,所以说资源的这个占用就会更的呃适合这个作业运行,那么作业呢,一般就是你如果要是比较大的话,这个非常规模非常大,而且是长时间运行,一直占着不结束的这种job,那我们就用这个pro drop模式给它创建一个单独的cluster,这样可能会好一点。
06:38
啊,这是这个实际应用的这个场景啊呃,然后我们就给大家说一说,这个启动的时候到底怎么起啊,首先你得把那个哈杜普集群起起来对吧?啊,这个就我们就不说了,然后在session模式下,这两种模式启动方式不一样,Session模式下启动呢,首先要启动一个雅安session啊这这个雅安session这个命令在哪里呢?这还是之前我们提到的啊,大家还记得那个在并目录下边对吧?这里边我们看到有stop cluster对吧?Stop cluster,另外还有一个叫做雅n session.sh。
07:13
所以你就直接执行这下边的这个呃,脚本命令就可以了,然后你这么一执行的话,里边要带参数,大家知道这个雅安session去创建的时候,相当于是要起一个flink集群嘛,所以大家看后面带什么参数呢?杠N,杠N指什么?哎,当前指定的task manager的数量对吧?当然这个杠N参数这个在后来的版本里边应该已经不需要去指定了啊,为什么?就是我们一开始不需要指定集群里边有多少个task manager啊,就是因为你一旦指定之后,相当于后边我那个超出这个资源我就不能再动态分配了,对吧,就限定死了,跟stand一样了,那所以后来就调整成什么呢?就是我们一开始session里边不指定task manager的数量,而是什么样呢?那就是动态分配啊,你来了这个需要多少,我要去呃,需要占用更多资源的时候,我再去起一个新的task manager,然后加到这个集群里边来啊,这个动态去添加都是可以的啊啊,所以这个参数一般情况也就少用了啊。
08:13
然后后边比较常用的就是杠S,杠S这个就我们知道这是配置文件里面配好的啊,每个task manager的lo数量,这就相当于是那个呃,Task slots of,呃,Task,呃,Manager的那个tasks number of task slots对吧,就是它的那个配置,然后这里边注意一般默认配置的时候我们给几呢?一般还是按照核心数来给对吧?啊那对于这个当前在在这个雅安session里边,因为容器化啊,那一般情况这个也不是特别重要了,因为一般情况我们就是一个容器,一个task manager里边就一个slot啊,这个就隔离的更更加的更加的这个分分得开了,对吧?啊,这个就更加的呃,方便我们运行管理,那后边还有两个参数,就是一个是杠GM。
09:01
那大家知道这就是job manager的内存对吧?然后TM这就是task manager内存啊,这个这里的这个TM我们说就是整个容器起的那个容器占用的内存,相当于之前我们配置文件里的process size对吧?整个进程的那个size啊,另外还有这个NMNM大家知道,就是雅安的那个APP name嘛,对吧,这个是大家都很熟悉的,还有杠D就是deach模式啊,后台执行啊,这个大家就是只要运行一下知道是怎么回事就可以了,然后这里我们只是启雅安session啊,启动了一个session,启动了相当于是启了一个集群,那还没有提交job呢,那提交job之后怎么启,怎么提交呢?啊,跟之前我们讲的命令行提交job一模一样啊,就是现在你只要是这个就是带哈多支持的版本,然后掀起了雅session,只要是在这个前提下,你执行同样的一句命令,大家看还是弗link wrong-C对吧,指定这个入口类,然后后边哎,我们这个抓包,然后host的参数啊给进去,只要去直接执行同样的命令,它就是运行在。
10:10
哪个集群上呢?因为你现在没有没有start克拉啊,它就运行在雅安session的那个集群上。啊,所以这其实提交一模一样对吧?啊,就没有必要讲了,那后面如果大家要看查看那个任务状态的话,你就可以怎么样呢?呃,到那个雅安的控制台里边去看当前的这个状态,对吧?然后你如果想要去点开看我们当前本身的这个就是那个页面的话,其实也是可以点开看的,你就点到那个呃,Application里边去,对吧,你看它里边的那个,呃呃给给的那个链接link,你点进去其实也是可以看到的,那这里边如果要取消的话,我们就直接雅安application直接Q掉就可以了啊这个也是一样的啊,然后另外还有一个就是prora模式了,Prora模式其实更加简单啊,那就不用提雅session呀,对吧?那那前前提还是把那个哈集群要提起来,然后我们有支持,然后接下来呢,直接执行job还是弗Li drop啊,但是现在我怎么知道你是要执行一个雅恩模式下的这个drop呢,加一个参数叫杠M雅恩class特。
11:17
这就表示我当前诶不用找现在已经存在着的这个集群,对吧,不管是雅安session还是那个的那个集群,不去找那个,而是什么呢?而是指定就是雅恩给我自己起一个,根据自己当前的job起一个C,所以杠M雅恩cluster这个是就是这么写啊,这这个没有没有别的写法,这个就是固定的这个,呃名名名字名字啊就是这么写的,然后直接其他的参数都一样提交就完事了。啊,大家下来之后都可以把这些做一些测试啊,都可以练一练啊,那这个K8S的话,其实也是类似,我们知道K8S是基于docker镜像的一种,呃,这这种就是容器化的部署模式啊,那K8S在部署的过程当中主要是什么呢?也是你先把K8S集群先搭起来,然后接下来呢,就是配置几个组件的压文件,哪几个组件呢,这里边主要要的是一个是job manager,一个是task manager,另外还有一个叫job manager service。
12:20
啊,把这几个组件的配置文件配好,然后用这个K8S的create这个命令啊,呃,Q p ctl create,然后把这个配置文件,呃,根据这个配置文件去启动相应的服务,启起来之后就可以访问了啊,所以这个整体来讲还是比较简单的,大家如果感兴趣,下来之后也可以查官网资料去做一些配置啊,那这一部分就是关于在容器化部署平台上边的flink部署。
我来说两句