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>>() {
            @Override
            public 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相关的配置
手动保存和自动保存的结果文件是不一样的
相关推荐
格林威13 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
sunshine22 girl13 小时前
Angular7,9,学习笔记三 dom操作
笔记·学习·angular
chen<>13 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
一直C13 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
大大大大晴天13 小时前
大数据上 K8s 的三种运行范式:离线计算、实时流处理与分析服务
大数据
十年Java程序媛13 小时前
SpringBoot3 + JDK17 实战复盘:HikariCP 连接耗尽,虚拟线程场景额外注意事项
java·spring boot
春风解人意14 小时前
从零开始学习嵌入式P28----线程
c语言·学习·算法
m0_7345717614 小时前
深入理解C++ 类型转换<三>const_cast
开发语言·c++
luj_176814 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法
程序员小八77714 小时前
Agent 沙箱:给 AI 的「手」套上缰绳
大数据