【大数据面试题】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");
    }
}
相关推荐
小羊没烦恼!4 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
尧炎科技4 天前
防潮抗变形,就选纯品梅花全桉多层板
大数据
程序员大阳4 天前
副队长大数据教程(5)--集群情况下虚拟机网络配置
大数据·集群·nat·网路
自由能燃气设备4 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
嘉立创FPC苗工4 天前
FPC与机器人的双向赋能,解锁智能装备进化新势能
大数据·人工智能·制造·fpc·电路板
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
龙亘川4 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
码流子4 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构