Flink on zeppelin第五弹设置checkpoint

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 概述Flink的exactly-once语义实现是需要依赖checkpoint的,对于一个有状态的Flink任务来说如果想要在任务发生failover,或者手动重启任务的时候任务的状态不丢失是必须要开启checkpoint的,今天这篇文章主要分享一下Flink on zeppelin里面怎么设置checkpoint以及怎么从指定的checkpoint恢复任务.

概述


Flink的exactly-once语义实现是需要依赖checkpoint的,对于一个有状态的Flink任务来说如果想要在任务发生failover,或者手动重启任务的时候任务的状态不丢失是必须要开启checkpoint的,今天这篇文章主要分享一下Flink on zeppelin里面怎么设置checkpoint以及怎么从指定的checkpoint恢复任务.


checkpoint配置


%flink.conf
// 设置任务使用的时间属性是eventtime
pipeline.time-characteristic EventTime
// 设置checkpoint的时间间隔
execution.checkpointing.interval 10000
// 确保检查点之间的间隔
execution.checkpointing.min-pause 60000
// 设置checkpoint的超时时间
execution.checkpointing.timeout 60000
// 设置任务取消后保留hdfs上的checkpoint文件
execution.checkpointing.externalized-checkpoint-retention RETAIN_ON_CANCELLATION


只需要像上面这样就可以配置任务的checkpoint了,当然除了配置这些参数外也可以设置任务的jm,tm等参数,Interpreters 设置里面的很多参数(比如下图的这些)都是可以在note里面直接执行的,然后在这个note里面的任务都会使用刚才的配置.



在执行这些配置的时候需要先把Interpreters 重启一下,因为当Interpreters 进程已启动时就无法更改Interpreters 的属性了,否则会遇到下面的报错


java.io.IOException: Can not change interpreter properties when interpreter process has already been launched
  at org.apache.zeppelin.interpreter.InterpreterSetting.setInterpreterGroupProperties(InterpreterSetting.java:957)
  at org.apache.zeppelin.interpreter.ConfInterpreter.interpret(ConfInterpreter.java:73)
  at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:458)
  at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:72)
  at org.apache.zeppelin.scheduler.Job.run(Job.java:172)
  at org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:130)
  at org.apache.zeppelin.scheduler.FIFOScheduler.lambda$runJobInScheduler$0(FIFOScheduler.java:39)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at java.lang.Thread.run(Thread.java:748)

创建kafak流表


网络异常,图片无法展示
|


然后来一个非常简单的聚合查询,为了体现任务是从状态中恢复的,所以我们这里根据name分组计算了一个count(age)的操作


网络异常,图片无法展示
|


这里我先写入了10条数据,jason和spark都是5条,然后先来看一下HDFS上的checkpoint文件是否生成了.


网络异常,图片无法展示
|


可以看到此时任务已经完成了4次checkpoint了,这时候把任务cancel掉,然后从上一次成功的checkpoint处恢复任务,也就是第4个checkpoint的地方.


%flink.conf
execution.savepoint.path hdfs://master:9000//flink-rockdb/checkpoints/904d58cbd50821f42f33ffed91989ba0/chk-4


需要指定刚才任务的checkpoint路径,先执行上面的语句,然后再接着执行刚才的那条SQL就可以了.



从上面的图可以很清楚的看到,任务是从第4个checkpoint处恢复计算的,然后再来往kafka中写入10条数据看下结果是否正确.



可以看到结果是正确的,是从刚才的状态里面的值接着计算的,说明任务从checkpoint里面恢复成功了.整个过程是不需要写任何代码的,只需要在note里面执行几行配置就可以了,使用起来还是非常方便的.


这篇文章主要是介绍Flink on zeppelin如何设置任务的checkpoint,以及任务重启的时候怎么从指定的checkpoint位置恢复任务.

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
26天前
|
容灾 流计算
美团 Flink 大作业部署问题之 Checkpoint 跨机房副本的制作能力如何实现
美团 Flink 大作业部署问题之 Checkpoint 跨机房副本的制作能力如何实现
|
22天前
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之mini-cluster模式下,怎么指定checkpoint的时间间隔
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
26天前
|
存储 监控 Serverless
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
|
26天前
|
缓存 流计算
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
|
26天前
|
分布式计算 流计算
美团 Flink 大作业部署问题之Checkpoint Replicate Service 跨 HDFS 集群的副本制作是如何实现的
美团 Flink 大作业部署问题之Checkpoint Replicate Service 跨 HDFS 集群的副本制作是如何实现的
|
26天前
|
流计算
美团 Flink 大作业部署问题之新启动作业的 Checkpoint 跨作业文件引用的问题要如何避免
美团 Flink 大作业部署问题之新启动作业的 Checkpoint 跨作业文件引用的问题要如何避免
|
26天前
|
流计算 索引
美团 Flink 大作业部署问题之RocksDBStateBackend 的增量 Checkpoint 要怎么制作
美团 Flink 大作业部署问题之RocksDBStateBackend 的增量 Checkpoint 要怎么制作
|
流计算 Apache 存储
Flink Checkpoint 问题排查实用指南
本文会统一聊一聊 Flink 中 Checkpoint 异常的情况(包括失败和慢),以及可能的原因和排查思路。
Flink Checkpoint 问题排查实用指南
|
2月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
705 7
阿里云实时计算Flink在多行业的应用和实践
|
1月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。