当前位置: 首页 > news >正文

flink学习(12)——checkPoint

如何设置checkPoint

package com.bigdata.day06;/**
* 1、需要三句话
* 2、设置完checkPoint后若程序出现异常,会一直重启
* 3、此时是自动进行checkPoint保存 
* 4、注意:此时如果有checkpoint ,是不会出现异常的,需要将checkpoint的代码关闭,再重启程序。
* 5、若配置了
*/public class _01_checkPointDemo {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 第一句:开启快照,每隔1s保存一次快照env.enableCheckpointing(1000);// 第二句:设置快照保存的位置env.setStateBackend(new FsStateBackend("hdfs://bigdata01:9820/flink/checkpoint"));// 第三句: 通过webui的cancel按钮,取消flink的job时,不删除HDFS的checkpoint目录env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);DataStreamSource<String> source = env.socketTextStream("bigdata01", 8889);source.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() {@Overridepublic void flatMap(String value, Collector<Tuple2<String, Integer>> out) throws Exception {String[] s = value.split(" ");for (String string : s) {out.collect(Tuple2.of(string, 1));}}}).keyBy(0).sum(1).print();env.execute();}}

 如何使用checkpoint中记录的数据

运行jar包——使用命令的方式flink run -c com.bigdata.day06._01_checkPointDemo \
-s hdfs://bigdata01:9820/flink/checkpoint/1ae08d23a3ab0f8455d997c6c913c8e7/chk-95 \
flinkProject-1.0-SNAPSHOT.jar-s 表示checkPoint的文件地址
最好以下面的方式复制checkPoint的文件地址设置checkpoint和使用checkpoint是两个事情

手动保存checkPoint 

1、使用 ctrl+c是不能停止flink任务的,需要在8081界面进行canle job
2、使用命令手动保存checkPoint 此时保存快照且不会停止任务
flink savepoint 79f53c5c0bb3563b6b6ed3011176c411 hdfs://bigdata01:9820/flink/checkpoint
3、停止的时候,保存一次快照
flink stop --savepointPath  hdfs://bigdata01:9820/flink/checkpoint c81bb1546866566ce4e16181d0c52be8
4、停止一个任务
flink stop 152e493da9cdeb327f6cbbad5a7f8e41 job编号79f53c5c0bb3563b6b6ed3011176c411  job编号手动保存时,不需要在代码中设置有关checkpoint相关的配置
手动保存和自动保存的结果文件是不一样的

 

http://www.lryc.cn/news/495756.html

相关文章:

  • 【iOS】《Effective Objective-C 2.0》阅读笔记(一)
  • LVS 负载均衡面试题及参考答案
  • 北京科博会 天云数据CEO雷涛谈人工智能技术服务数字资产建设
  • 【Python运维】容器管理新手入门:使用Python的docker-py库实现Docker容器管理与监控
  • 小程序解决大问题-物流系统磁盘爆满问题处理
  • 计算机网络基础篇
  • 32 从前序与中序遍历序列构造二叉树
  • D82【python 接口自动化学习】- pytest基础用法
  • 在开发环境中,前端(手机端),后端(电脑端),那么应该如何设置iisExpress
  • 磁盘/系统空间占满导致黑屏死机无法开机的解决办法
  • 使用zabbix监控k8s
  • MacOS安装MySQL数据库和Java环境以及Navicat
  • 算法的复杂度
  • Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题
  • 若依项目源码阅读
  • JVM知识点学习-1
  • TypeScript和JavaScript区别详解
  • RVO动态避障技术方案介绍
  • Vue进阶之单组件开发与组件通信
  • OGRE 3D----5. OGRE和QML事件交互
  • ARIMA-神经网络混合模型在时间序列预测中的应用
  • 常见靶场的搭建
  • [MacOS] [kubernetes] MacOS玩转虚拟化最佳实践
  • HarmonyOS:@Provide装饰器和@Consume装饰器:与后代组件双向同步
  • git 上传代码时报错
  • 判断1456789876541是否为素数,是输出“是素数“,不是则输出“不是素数“
  • Flutter:封装发送验证码组件,注册页使用获取验证码并传递控制器和验证码类型
  • 亚马逊IP关联是什么?
  • Electron + vue3 打包之后不能跳转路由
  • docker安装clickhouse副本集群