00:00
那接下来我们就是看一下用flink的什么模式,什么方式来操作护底,那么官方的案例也好,或者说更方便的方式,就是用flink提供的circle客户端,也就是说跟我们前面用的Spark share有点像啊,就或者说Spark circle,我们不是进去一个交互式的客户端嘛,对吧,里面可以输入一些circle,一回车立马就执行,立马出结果啊,这也是可以的。那在这里呢,我会分两种方式,第一种呢是。第二种呢,是基于雅安session。那么在生产中呢,如果你已经用了哈杜呃这个组件的话,那我建议还是用呃雅安session的这种方式啊,为什么呢?大家回忆一下flink的一个基础知识啊,Flink的部署模式是不是有stand alone啊,或者local或者雅恩对吧?那其他的就不提了啊,主要对比这几个local是什么意思呢?在一个节点进行启动。
01:06
啊,就是说就是单机模式嘛,呃,或者说我只在一个节点启动,当然呃在一个节点当中,它的task manager是可以启动多个的,只不过都在同一台机器上面,同一个节点上面,这是local对吧?那呃就是正儿八经的分布式的啊,你可以比如说你部署三台啊,Master一个啊,也就job manager一个task manager啊,你可以看部署在哪几台上面,呃之后呢,你是需要执行命令start一下是吧?啊这种是由flink自己来管理资源,那比较主流的,或者说跟哈杜去集成的时候,经常我们用雅安模式,那雅安模式呢,其。最大的特点跟优点就是什么呢?是由雅恩来管理我们flink集群的资源,对吧?而且呢,我们TM的数量它是动态申请的,也就是说你一开始不提交,比如说呃,咱们说的比如说是雅安session啊,雅安session那坡胶本那些就不提了,呃,因为那些是独立集群对吧?呃,那如果我们启动一个ya session的话,它的特点是不是一开始只会启动一个什么job manager一个,然后呢,一开始TM是什么零个。
02:28
对吧,当我们有作业提交到这个集群当中的时候,比如说这个作业并行度,或者说啊,经过各种计算啊,它需要两个TM来执行,这个时候雅恩会帮我们去申请两个啊,对吧,这个时候就变成两个啊,那如果还有新的其他作业再提交,比如说他又需要三个TM,那他又会给我们加三个TM申请起来,也就是说它是动态申请,那这个时候如果我第一个作业把它取消掉,呃,那这两个不就空出来了吧,那过一小会儿它就会将这两个给释放掉,哎,又变成了三个,这样的话对我们资源的利用来讲是不是更好啊,对不对啊,所以呃,行呃,扯了这么多,我们先做一个基本的准备工作,第一呢,我们需要修改flink默认配置,主要是这个。
03:23
这个东西呢,呃,是每一个TM,每个小D有几个slot。因为默认是不是一啊,默认是一对吧,那如果咱们用local模式的话,呃,你只只启动一个TM的话,呃,它默认,比如说你用的是MR表,它默认是不是要执行一个compassion对吧,那compassion的时候它默认的。并行度或者你right的时候,它默认的并行度是四啊,就忽底写死的是四,可以改,但如果你没改就会出现说你只有一个TM,只有一个slot,那就不够啊,那这路就一直是create状态啊,或者就启动不了啊,这只是测试环境的时候,咱们要这么去改啊,行,你改不改都行啊,无所谓。另外一个呢,咱们就设定一下状态后端还有切角泡影的配置。
04:19
因为我们用的是SQL客户端,不是说在代码当中去指定对不对啊,那我们就改一下呗,那大状态呢,我们一般是用RODB,并且呢,会开启一个什么增量。那这个相关的知识,呃,Flink应该大家有一定了解了吧,啊,那接下来是checkpoint的间隔,Checkpoint的存储路径啊,就这么简单,行,那我们配一下吧,S commlink com对吧。那首先呢?我们改一下,这些都不改,诶改这个地方,每一个TM的slot我改成四。
05:01
然后呢,接下来的。往下是checkpoint的配置,诶,来这里,呃,你可以直接把这个state backon打开。改成DB。切泡影的路径我们也改一下。呃,其实这个东西它本来都注释掉了,你直接拷过来就行了啊,这样快一点啊,这种就CKPS吧,无呃路径无所谓啊,路径你自己想,还有一个增量检查点,我们也把它打开。啊触还有一个间隔,这里没有对吧,没有的话咱们就手动指定一下。卡住了吗?动不了了。
06:01
啊,刚才卡了一下啊,没事。然后把它拷贝一下。或者这个你再进去之后再set也可以啊,我这边设定的是30秒,单位是毫秒啊啊那为了快速演示效果呢,我改低一点吧,我改成五秒好了啊,为了演示啊,快速演示咱们改成五秒就好。那最后呢,是一个依赖检查,就是这个,呃。把它关掉就可以了。就这个东西不影响执行,但是有时候如果他出现一些啊告警信息,那就很烦啊。好保存退出,那这样我们就配完了啊。配完之后呢,我我们第一个先来启动一个用local的方式看一下怎么做啊,Local的话其实很简单,就是它有一个works这么一个配置文件里面指定的TM啊要部署在哪里,那这个时候我会给他写三行local host,这个的意思就是在本地,也就是说在一台服务器,在当前这台服务器我会启动三个task manager,所以呢,我称之为这种是伪分布式啊,不是真正的分布式叫伪分布式对吧?啊这种就是local集群啊,那正常如果是stand alone,我们这边是不是比如说应该写的就是什么呢?啊,我要三台服务器,那就是比如说哈杜一哈杜二哈杜三啊,那这样就是三个节点都启动TM是吧,这才是分布式啊,S登alone,行,那我们现在演示用local就好啊,为了快啊,为了快行,那快速来做吧。
07:48
Walk。好,默认是只有一个local host对吧,YYPYYP啊好,其实三个只是为了演示啊,那这些都配完之后,我们直接并目录有一个start c,用这个命令来启动集群就可以了,来我启动之前先看一下呃,进程啊,是这么一些啊,那现在我并start class先启动集群才能进入那个搜狗客户端啊。
08:25
没有集群的话,他车主客户端是连接不上好了,那么大家可以很明显的看到啊呃。呃,什么stand alone session在哈一启动,这个其实就是什么job manager,再往后呢,Task在哈一,Task为一,Task哈度为一对吧?啊。这个时候大家看一下这里有几个task manager有三个对吧,这个就是local模式,然后呢,咱们的job manager是哪一个呢?它的进程名称是这个啊,Stand along session entry point啊,这个就是GM啊,这个是TM。
09:08
好,集群启动完之后就可以来执行circle client啊,这个就是circle client,那一般呢,我们是加一个embeddy啊,是embeddy吧,看一下啊,这单词没拼错吧。诶啊,少了个D啊,我就觉得怪怪的啊,Embedded就是内嵌的内置的意思,那这个时候我们启动这个病例,它默认会去找什么呢?找master啊。Master。好一回车。这个时候就进来了。进来了。呃。好,那你可以在这里,比如说so data basis。对吧,现在是空的啊,也可以售啊,Talo也是空的,对吧,现在因为我们对原数据没有做持久化,那个呢,我们放到跟have集成,再给大家介绍啊行,那这个就是local集群的呃,使用方式。
我来说两句