00:00
那么接下来的话呢,我们来看一下这个塔诺的基本原理,我们从塔的启动脚本开始讲起。嗯,我们还是去径底下看一眼CD过去。在这个B这个路径底下呢,我们可以看到有两个可以执行的脚本,一个是start flink,一个就是Spark。嗯,说白了就是你向哪个集群以谁为引擎,就用谁的脚本启动脚本来提交任务。那么我们这里以flink的启动脚本。来看一下他内部都干了什么事情。那么首先呢,我们。引脸一上来,可以看到一个usage的函数。这个函数呢,实际上就是echo,就是向控制台哎打印说它这个函数的用法。我们可以看到呢,它目前呢,除了help以外有三个用法。
01:03
一个就是我们去启动脚本的时候,对刚才那个视频里面演示的去指定con啊,指定我们的配置文件的路径。然后另外一个呢,就是我们有一个惊喜的发现,它支持传变量啊。也就是说可以向这个配置文件里面传变量,另外一个呢,就是check,检查我们配置文件的语法是否正确。那么刚才。这个conflict这个参数我们已经看过了,那么剩下来呢,我们就看看variable,也就是这个变量。和这个check,检查它在这个脚本里面是怎样进行处理的。首先呢,我们继续往下看。我们可以看到这里有一个未有循环,这个循环在干什么呢?这个循环实际上就是在处理参数。那么这个微循环呢,实际上就是在处理我们这个脚本所接收到的参数。
02:04
首先呢,这个Dollar井号实际上是我们所有的一个参数列表。然后呢,这里是一个未有循环。CASE1,每一次从这个参数列表里面呢,它取出第一个。然后判断这个第一个呢,它是不是。杠C或者是杠杠也有它的长短命令。然后如果是的话呢,它就向右呢。再去跳两个位置。这样的话呢,这个未有循环呢,下一次接收到的参数列表呢,实际上呢,向右移的两位。也就是说,我们的参数不都是杠杠。然后叉叉叉嘛。这样一弄的话,实际上我们每一次都是按一个键指对向右去跳。然后呢,再进行判断,看它是不是呢,有这个variable是不是有变量,如果是的话,然后经过处理之后也向右移两位。
03:01
对呀。然后到最后呢,哎,整个未有循环,一直循环循环。如果呢?除了这个键值,对的键呢,如果它不是config,然后也不是这个变量,它是星,就是其他的任何值,它都会放到一个拼到一个字符串里面,也就是这个prem。参数。最后等到未有循环的时候啊,我们会得到什么呢?我们会得到一个拼接完的PM。那么大家有没有发现这个地方呢?它有一个问题。就是我们的check参数好像没有做任何的处理,也封装到这个,也给传递到这个,拼接到这个。变量里面去了。那我们看一下这个为什么没有做一个别的处理。那么首先我们往下看。我们看到在后面有没有别的处理。哎,你发现再没什么别的处理了,而是直接传给了谁呢?传给了这个fli home,也就是。
04:04
我们flink里面的。Run这个指令。也就是说,你指定的这个参数,它不会起到任何的效果,而是直接传递给了我们flink的启动命令。那么我们看一下,就是真正的去传check这个参数会导致一个什么样的结果,还是用刚才的命令。来尝试。尝一下check这个参数。还是指定一下我们配置文件的路径。然后呢,这个地方我们传一下这个参数。我们可以看到他报了一个,说是没有这个炸包。炸这个文件找不到的话,我们就是证实了check这个参数呢,目前在这个版本里面,也就是2.1.0,这个版本里面它是没有用的。
05:01
嗯,也就是开发还没有完善,但是呢,呃,这一块的知识呢,可能很快就会过期,因为社区应该。啊,正在重构这个脚本。不过作为这个对2.1.0的讲解呢,我们有需必要就提一下这个启动脚本里的一个问题。嗯,完了之后我们再回去看这个启动脚本。我们可以看到他说这个usage里面说它可以干什么呢?它可以这个使用变量。呃,也就是说我们可以通过一些传变量的方式啊,给我们的这个配置文件。比如说你看了没有,这个地方说的是啊,你可以传一些什么样的变量呢。啊,比如说这个city啊,可以是北京啊,然后完了之后,呃,Date日期可以是2019年3月18日,呃,通过这种传变量的方式,我们想我们刚才写的配置文件,呃,SQL里面呢,就可以使用这种。
06:02
通过命令行动态传参的方式。来编写我们的一些这个位条件,比如说我可以动态传参啊,我编写一个配置文件,然后v age是吧?啊,大于18岁的,大于60岁的,我都可以通过命令行的方式传进去。啊,那么接下来呢,我们就来看一下。传变量的这个功能。
我来说两句