温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
在状态编程这章的最后呢,我们再来简单的介绍一下状态的持久化和状态后端的概念啊,其实前面我们提到在flink状态管理机制里边,它主要有三个要解决的问题嘛,其中有一个就是我们需要对状态进行持久化保存啊,那主要也是为了发生故障的时候可以正常的把状态恢复出来,那link里边对于状态进行持久化保存的方式呢,就是检查点啊,就是我们要把所有的状态做一个快照,然后写入到一个检查点里面,那具体的存储介质一般都是分布式的文件系统啊,那什么叫做检查点呢?检查点英文叫checkpoint。简单来说呢,它其实就是做了一个快速的存盘啊,这就是我们所说的所有任务的状态,在某个时间点做了一个快照,一个snapshot,或者说就是做了一个保存,做了一个拷贝。这样的话就可以让我们当前的处理进度不要丢掉,那之后如果说发生故障的话,从这个存盘之后的结果里边,再把对应的数据恢复出来,就可以接着之前的那个状态继续进行处理了。
01:14
那检查点这个功能的默认情况下,其实它是被禁用的,所以我们如果想要使用,那需要在代码当中手动做一个开启,那具体的方法呢,我们可以看到啊,比方说我们在这个。状态的测试,这个文件里边直接用env执行环境去调用一个enable checkpoint这样一个方法啊,我们看到里边不传餐也是可以的,但是这种方法被弃用了啊,就是只是简简单单的把这个检查点打开,这个功能打开,这种方式要被弃用了,这里边默认至少要传一个参数,那这个参数呢。我们可以看到就是一个长整型的interval一个时间间隔,这表示的就是周期性的进行检查点保存的时间间隔啊,所以我们一般的一个flink应用啊,它如果开启了检查点功能的话,就相当于是做了一个自动存盘,自动保存这样的一个功能开启。
02:14
那默认情况下就是每隔一段时间就会保存一次,每隔一段时间就会保存一次。我们这里可以传入一个长整形的时间间隔,那当然这就是一个毫秒数了啊,所以比如说这里我们可以直接传入一个1万,那就表示每隔十秒钟进行一次检查点的保存。啊,那关于检查点呢,当然了,我们肯定可以在这个环境里边去做很多的配置了,那这一部分呢,我们会在后边第十章详细的进行展开讲解,现在呢就不做具体介绍了,那另外我们多说一句,就是除了检查点这样的一个存盘保存之外,Flink呢,还提供了另外一种保存的方式,就是所谓的保存点c point啊,那顾名思义,它其实也是对当前的状态做一个保存。
03:04
从原理上来讲,跟检查点是完全一样的,只不过呢,之前我们说检查点是自动存盘,每隔一段时间啊,就自动的把这个状态做一个快照,而保存点呢,需要手动触发,它是一个手动存盘的过程,之前我们在web UI上啊提交作业的时候,曾经看到过有一个选项可以指定当前启动作业,提交作业的对应的那个保存点的位置,保存点的路径,那其实就指的是如果之前我们做过手动保存的话,那就可以以当时保存的那个状态来进行初始化加载启动一个作业啊,那所以这个也就解释了我们之前看到的啊web UI上的那些选项的问题。这就是关于检查点的基本概念。
我来说两句