【大数据面试题】001 Flink 的 Checkpoint 原理

一步一个脚印,一天一道大数据面试题。

Flink 是大数据实时处理计算框架。实时框架对检查点,错误恢复的功能要比离线的更复杂,所以一起来了解 Flink 的 Checkpoint 机制吧。

Checkpoint 机制

触发 Checkpoint

通过设置时间或数据量阈值来触发 Checkpoint

生成 Barrier 屏障,写入快照

Flink 触发 Checkpoint 后,会从数据源 Source 算子开始分发 Barrier,算子收到后便开始停止处理数据,将目前的状态写入快照。

分发 Barrier 至下游

分发 Barrier 到下游算子,各个算子生成快照。直至所有算子完成写入 Checkpoint,Checkpoint 写入完成

检查点恢复

恢复时,分为两部分。

1.从 Checkpoint 恢复数据,这部分数据是 Barrier 之前的数据和操作。

2.继续处理 Barrier 之后的数据。

代码演示

下面是一个 Java 版 Flink 算子 demo

java 复制代码
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.streaming.api.CheckpointingMode;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

public class FlinkCheckpointExample {

    public static void main(String[] args) throws Exception {
        // 设置执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        // 从命令行参数获取输入路径和输出路径
        ParameterTool params = ParameterTool.fromArgs(args);
        String inputPath = params.get("input");
        String outputPath = params.get("output");

        // 开启 Checkpoint,并设置 Checkpoint 间隔
        env.enableCheckpointing(5 * 1000); // 每 5 秒触发一次 Checkpoint

        // 设置 Checkpoint 模式为 EXACTLY_ONCE(精确一次语义)
        env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);

        // 创建数据流
        DataStream<String> dataStream = env.readTextFile(inputPath);

        // 对数据进行简单处理
        DataStream<Integer> resultStream = dataStream.map(value -> Integer.parseInt(value) * 2);

        // 输出结果到控制台
        resultStream.print();

        // 将结果写入文件
        resultStream.writeAsText(outputPath);

        // 执行任务
        env.execute("Flink Checkpoint Example");
    }
}
相关推荐
云上先途11 小时前
属性标注是什么?主要解决什么问题?
大数据·人工智能
大大大大晴天13 小时前
每天认识一个组件:元数据平台OpenMetadata
大数据
接口不宕机14 小时前
1688 商品列表 API 对接商家 ERP,实现店铺商品同步与上下架自动监控
大数据
河南花仙子科技15 小时前
企业定制小游戏助力品牌软性传播
大数据·科技·游戏·小程序
云上先途16 小时前
标签化服务适合哪些人?常见适用场景一次讲清
大数据·人工智能·算法·音视频
yt004yt16 小时前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
GreatVicent16 小时前
腾讯AI产业大会解读:Agent进场,企业基础设施怎么搭
大数据·数据库·人工智能·llm·agent·企业信息化
m0_4665252916 小时前
从火柴人看护画面看云从科技生态企业的隐私保护实践
大数据·人工智能·科技·microsoft
yt004yt16 小时前
越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
sxwuyanzu17 小时前
DeepSeek冲IPO-谁在为它付钱-公众号发布稿
大数据·人工智能·科技