00:00
好,那么咱们接着咱们的主要逻辑run,这里边再解析完参数了,对吧,再往下走走这。我们看这个方法名是不是验证和获取什么活跃的命令行啊。咱们之前是不是说了命令行会封装成一个类型啊,叫command light,叫command light,对不对,有三个吧,还记得吧,是不是有三个,OK,那我们看他怎么来选择,是stand alone呢,还是雅安呢?在这里咱们看一眼啊。来,点进来。点进来你看他,呃,这边这种日志咱们不用看了,这边是不是做了一个遍历啊,咱们是不是加了三个呀,是不是挨个取出来,对吧,按照顺序取出来,那么接下来每一个都做一个什么逻辑,Is active是否活跃的嘛,对吧,那首先进来的应该是什么。
01:03
对吧。好。判断完了才轮到雅安吧,哎,所以我们说那个数据是有讲究的啊来我们接下来看一下is edit,分别来看不同类型点,呃,它是一个接口对吧,咱们应该找谁啊,CTRL加H对吧?找实线是不是先看generate对吧?看它是否活跃,它是怎么判断的好。呃,找我直接搜索,诶找到它的这个方法。你看啊,他这边是先获取的一个配置项叫target。是否存在这个target是什么东西呢?这种。是雅安吧,还是雅安session呢?还是local还是remote是吧?就执行的目标嘛,是否存在,那接下来他判断什么。
02:03
执行器的选项对吧,这个是不是货呀。它有三个条件,一个成立就行了,对吧?啊,那瞅一眼这个点。是不是一个叫execute的参数啊,啊,这个咱们没配过对吧,因为这个是比较老的,它下面的描述也是一个什么呢。过时的对吧,所以这个咱们是没见过,但是第三个条件大家一定一定见过。他给的,哦,不是点。什么呀,是不是杠T呀,哎,没错,大家,诶不知道以前老师有没有给大家讲咱们这个提交命令啊。杠T是新版本1.11版本之后才有的呀。1.1才有的,以前用什么。杠M啊。以前只有杠M-T是1.1才有的,这种对应的是什么general客户端啊,那这个没讲是吧,我给大家多啰嗦几句啊flink-H。
03:07
是不是查看命令信息啊,我大家简单了解一下就行,你看啊,它打印了很多对吧,往上翻往上翻。哎,怎么这么长啊?呃,到了对吧,你看它是分类型的,首先是转这个动作,哎,怎么传参他告诉咱们对吧,好呃,什么杠C啊杠什么一大坨,再往下你看它是分模式的。是不是模式?再往下你看是不是雅恩class模式,这种指的是杠M啊杠M雅恩class。是这么来写的。啊,对应的是。参数是这些不同模式,它参数的配法是不一样的,这里是flink比较乱的地方啊,比较乱的地方再往下看还有一个default。是不是有个defa,哎,从这边咱们能找到它的现象和体现,好吧,哎,你看是不是杠M啊,也可以杠M对吧?哎,很乱啊。
04:10
好。那咱们是不是就知道了对吧?啊好,那如果我没有指定杠T呢。没有指定钢梯,这三个条件是不是都不成立啊?是不是都是false啊?对吧,如果我没有直线杠T的话,比如说我雅恩基于雅安筛提交是不用杠T啊啊。那接下来第一个过去是不是该第二个了,第二个是不是应该雅安3C对不对,好,那我们就找呗,还是找实现在哪里呀。啊,CTRL加九同来是不是找这里啊。呃,点开它分为默认含有雅恩的吧,好雅安里面含有是吧,是不是雅安三。克莱。
05:00
对不对,这个就是咱们当时添加的吧。第二个是不是是不是就这个类型好,那这个类型我们点双击找他的什么意思。Negative。好,接下来就是咱们雅恩的这个了啊。那么你看啊,它调用了一个负类的子active,对吧,也就是一个抽象类啊,咱们那个类的关系无所谓,咱们知道在哪点就行了啊,那是不是这样啊,我给大家打个点。如果这个。判断为false,是不是return下面这种啊。对吧,那首先是不是得先执行这里啊同学们。没问题吧,好,那我们就往里走了点。哎,又是一大坨对吧?啊,看的很乱,也没有任何注释,没事,咱们一行一行看啊,首先呢,先获取的一个配置什么呀。
06:01
地址,谁的地址啊,叫manager的地址啊,给大家瞅一眼,这个你点。这个是什么?就是咱们提交命令杠M是不是指定老大的地址啊。对吧,如果咱们是基于杠M的方式去指定的话,也就老版本的方式,那么。里面传的是不是老大地址啊,旧本面地址,哎,他就是拿到这个先判断一下,先拿到他的地址,接下来呢,判断什么呢。是不是跟一个叫ID的常量做了一个对比啊,好,关键来了,ID是什么?是不是写死的字符串啊,对吧,所以你说它实现多高大上也就这样子啊,来我们把它写注意一下,哎,返回过来我们说。ID。
07:01
是固定的什么字符串什么呢。雅安卡斯特对吧?啊哎,关于这个,哎,大家雅安per旧的提交模式有没有给大家讲过老版本跟新版本写法。没有是吧,没有我提一句啊,因为咱们现在弗link更新太快了,用法一直在变啊,呃,这样啊,雅安和旧,呃新老版本写法诶大家注意老版本指的是。小于等于1.10啊它是什么呢?Li run-M雅恩class这样子,然后后面杠C,呃,对吧,然后某某某点价对不对。诶,大家注意这个字,你一个字母都不能错,大家能看到啊,它是不是调用了一个ES啊,你你错了它就不行,它就不认识了啊。那新版本。新版本指的是大于等于1.11打是flink。
08:05
是吧,杠T啊雅安和九对吧,然后杠C叉叉叉叉叉叉叉点价。杠T是不是generate模式啊,对吧,然后杠M是不是传统模式啊,啊在老版本是没有那个generic。这个大家做一个了解,为什么讲这个呢?因为其实企业里面他不一定就用的1.1 1.12对吧,太新了,可能还有的还是1.7的,也有1.8的,1.10的都有啊,所以啊,做一个了解就行了啊了解。呃。好。好在接下来看这个是什么。是是否有配置对吧,有什么呢?应用ID吧。对不对?这里当然是雅恩骑起来才有吧啊。
09:04
判断,呃。判断是否存在,呃,Session对应的什么?APPID吧,这个对应的是什么同学们?什么叫APPID,大家应该有了解吧?你看我打开雅N的页面,它是不是会生成一个ID啊,哎,它就是来找这个东西,如果已经存在了,那么它就提交到这去,对吧。也就是在这的判断是否存在对应的。我写一下吧。雅安对应的APPID好了,这个完事之后是不是还有一个或呀或一个什么。啊,就是应用ID嘛,对不对啊,这个前面是什么呢?是咱们参数有没有指定对吧,那后面这个是什么。
10:01
是不是直接从雅人上去找了呀?对吧,一个是看咱们的命令,输入的命令有没有指定ID,另外一个是直接从雅上面去找啊。好。再往后。Has。呃,那这边你别看他写的长对吧,它是内名长,然后点内对吧,那我们看一下这个内是什么。是不是又掉了一层啊,是不是很烦啊,没事再点进去。大家会发现就是一个字符串是吧,就是一个字符串,来我把它截个图好吧。哎,这三个好,我们返回返回,诶回到咱们一直active。来这儿。那这里是不是用ES筛这个字符串去比较配置项?
11:01
对吧,好什么配置下呢。Target。Target。来target是什么呀?是不是咱们杠T来指定的同学们?对吧,好或者。或者雅安job克拉点内这个是什么呢?破旧。咱们是不是杠替雅恩破旧了对不对,好。然后equals也是一个他给的对吧,好说白了就是有没有这两个嘛,他给的是不是这两个嘛,对吧,最后你看它返回是不是三个。三个条件,就前面咱们讲的三大步啊。说白了,如果什么呢?咱们指定的杠M羊cluster或者。啊,不是这个不是按这个顺序啊,这个是第一个对吧。指定的杠儿母羊luster或者。
12:04
存在应用ID或者指定应用ID对不对?好第三种,如果它的执行器是基于雅安的,那是不是就它是活跃的其中一个满足就行了吧。那么大家想想,为什么咱们flink都不指定的时候,他会优先考虑雅,现在大家能明白吗?他是不是能找到应用ID啊,对吧,他找到应用ID,他就优先以雅恩的模式提交了啊。所以也回到咱们前面说的,为什么前面添加的顺序有讲究对吧,它是一挨个去判断啊。好,这边同样的咱们也得补充一下啊,我们说。呃,一个是什么杠M雅安卡拉斯,一个是什么?有,雅安有。
13:02
APID或者。啊,命令行指定了对吧。另外还有一种情况是什么?执行器是雅安的对吧。这三个条件满足一个,那么他就走雅安啊。这个就是一个命令行客户端的选择,好吧,那接下来咱们这个雅安的是不是看完了呀,那咱们得回到。回到咱们之前的主要逻辑上去了,是不是在pass啊,不是啊,Default pass啊,我重新点进来啊。啊,不是在这儿。我回退回退,因为刚才点的太多了,对吧,哎,回到这里了对吧。是不是在这遍历挨个遍历啊,接下来是不是该遍历第三个了。如果没有牙,那是不是只能走什么?
14:00
Default对吧?哎,只能走default那个就很简单了,点接口对吧,找实现CTRL加H,然后把这关掉。接下来是不是看上面这个。是吧,找什么已知。你看啥也没有对吧,啥也不是对吧,因为就剩下他了,能轮到他说明什么,说明其他都不行了,只能他顶上了啊,也不做任何判断了啊。啊。好,这个就是返回再返回,诶返回到哪里啊,Run这个核心逻辑是不出来了,我们终于出来了是吧,好这边呢,其实讲那么多,大家记住这个干嘛呢就行是吧。是吧,根据之前添加的顺序是不是挨个判断是否。Active对吧?
15:00
按照什么顺序呢?瑞克雅安还有呢。是不是没问题吧,哎。
我来说两句