来源书籍
Flink原理与实践
框架类
类别清单覆盖
8/8
全书概览
《Flink原理与实践》读书笔记总览
阶段一:整体评级
- 书名:《Flink原理与实践》
- 作者:鲁蔚征
- 出版时间:2021-03
- Skill 版本:v1
- 类别:框架类
- 四象限结论:工程实践(高信息浓度 + 低到中等稳定性)
评级理由
本书不是单纯的 API 清单,而是围绕 Flink 作为流处理框架的核心机制展开:第1章解释批处理、流处理、Lambda/Kappa 架构和流处理基础概念;第3章讲数据流图、作业提交、JobManager/TaskManager、算子链与 Slot;第5、6章集中讨论时间语义、Watermark、窗口、状态、Checkpoint 与 Savepoint;第7章延伸到端到端 Exactly-Once 和连接器;第8章用动态表和持续查询解释 Flink SQL。这些内容体现了较高的信息浓度。
但书中也有大量与 Flink 当时版本及具体 API 绑定的内容,例如 Flink 1.11 前后 Source 接口差异、DataStream API/SQL DDL 写法、部署配置、命令行、内存参数和实验步骤。核心原理可迁移,具体接口与配置会随 Flink 版本演进。因此整体归为“工程实践”,而非稳定性最高的“经典原理”。
阶段二:章节进度
| 章节号 | 章节标题 | 精读/略读 | 状态 | 卡片数 |
|---|---|---|---|---|
| 1 | 大数据技术概述 | 精读 | done | 8 |
| 2 | 大数据必备编程知识 | 精读 | done | 6 |
| 3 | Flink的设计与运行原理 | 精读 | done | 8 |
| 4 | DataStream API的介绍和使用 | 精读 | done | 8 |
| 5 | 时间和窗口 | 精读 | done | 10 |
| 6 | 状态和检查点 | 精读 | done | 10 |
| 7 | Flink连接器 | 精读 | done | 6 |
| 8 | Table API & SQL的介绍和使用 | 精读 | done | 10 |
| 9 | Flink的部署和配置 | 精读 | done | 6 |
章节划分理由
第1章包含大数据分治、批处理/流处理、Lambda/Kappa、窗口/状态/一致性等基础概念,精读。第2章虽有开发环境搭建,但继承、多态、泛型、函数式编程与 Flink API 理解直接相关,精读并过滤操作步骤。第3章是框架运行原理主线,精读。第4章包含 DataStream 的核心抽象、转换、并行度、重分布、序列化和自定义函数,精读。第5章集中讲时间、Watermark、窗口、Join 和迟到数据,精读。第6章讲状态、Checkpoint、Savepoint 与恢复机制,精读。第7章讲连接器和端到端一致性,精读。第8章讲 Table API、动态表、持续查询、时间属性和 SQL Join,精读。第9章部署命令较多,但类加载、资源划分、内存、算子链与槽位共享仍属框架机制,精读并过滤纯操作步骤。
待关联术语
| 术语名 | 出现章节 | 一句话语境 |
|---|---|---|
| MPI | 1 | 作为分治与并行计算背景被提及,但未展开其编程模型细节 |
| Storm | 1 | 作为第一代流处理引擎与 Flink 对比,未系统展开内部机制 |
| Samza | 1 | 作为第二代流处理引擎被提及,未展开架构细节 |
| Avro | 4 | 作为 Flink 可使用的序列化/数据格式被提及 |
| Kryo | 4 | 作为 Java 生态常用序列化框架被提及 |
| Thrift | 4 | 作为跨语言序列化方案被提及 |
| Protobuf | 4 | 作为跨语言序列化方案被提及 |
| RocksDB | 6 | 作为状态后端相关实现被提及,未展开存储引擎原理 |
| Kinesis | 7 | 作为 Flink 支持的连接器对象被列举 |
| Redis | 7 | 作为 Flink 支持的连接器对象被列举 |
引用文献
| 标题 | 类型 | 出现章节 | 一句话语境 |
|---|---|---|---|
| 大数据时代:生活、工作与思维的大变革 | 书 | 1 | 用于引入大数据改变生活、工作和思维的背景 |
| MapReduce: Simplified Data Processing on Large Clusters | 论文 | 1 | 作为 Hadoop/MapReduce 分布式批处理模型的经典来源 |
| Kafka: a Distributed Messaging System for Log Processing | 论文 | 1 | 作为 Kafka 日志式消息系统的参考来源 |
| The Dataflow Model | 论文 | 5 | 作为时间、窗口、水位线等流处理模型的重要参考 |
| Lightweight Asynchronous Snapshots for Distributed Dataflows | 论文 | 6 | 作为 Flink 分布式异步快照机制的参考来源 |
| Apache Flink | 框架 | 全书 | 本书主题框架,围绕其 API、运行时、状态和部署展开 |
| Apache Kafka | 框架 | 1、7 | 作为流数据来源、消息队列和 Exactly-Once Sink 示例被多次提及 |
实践卡进度
| 序号 | 实践标题 | 实践方式 | 状态 | 关联章节 | 产出 |
|---|---|---|---|---|---|
| 1 | 实现两阶段提交sink观察事务写延后可见 | 实现深读 | done | 第7章 | Checkpoint 周期可见性时间线与故障注入记录 |
| 2 | 写一个时态表Join作业验证查版本与状态TTL | 真实任务 | done | 第8章 | 事实-维度版本关联对照表与状态大小观察记录 |
类别清单核对
| 维度 | 覆盖状态 | 关联卡片标题或未覆盖理由 |
|---|---|---|
| 核心抽象/设计理念 | 已覆盖 | [[流图是逻辑契约]]、[[物理图承接分布式]]、[[SQL是更高抽象]]、[[动态表持续变化]] |
| 扩展机制 | 已覆盖 | [[Rich函数有生命周期]]、[[连接器是系统边界]]、[[新版Source拆职责]]、[[环境桥接两套API]] |
| 生命周期管理 | 已覆盖 | [[提交流程分层协作]]、[[Checkpoint备份本地状态]]、[[Barrier切分快照边界]]、[[Savepoint服务运维]] |
| 配置与约定的取舍 | 已覆盖 | [[算子链是部署优化]]、[[槽位共享提升利用率]]、[[并行度决定最低Slot]]、[[内存配置分角色]] |
| 依赖管理/组件协作方式 | 已覆盖 | [[JobManager负责协调]]、[[TaskManager执行任务]]、[[Slot是资源单位]]、[[端到端一致靠两端]] |
| 与底层技术的关系 | 已覆盖 | [[类加载保护依赖边界]]、[[SQL是更高抽象]]、[[环境桥接两套API]]、[[两阶段提交有协作成本]] |
| 性能特性与常见陷阱 | 已覆盖 | [[延迟吞吐是跷跷板]]、[[延迟准确需权衡]]、[[窗口函数分增全量]]、[[增量快照省写入]] |
| 适用边界 | 已覆盖 | [[流批区别在边界]]、[[Lambda双链路代价]]、[[Kappa以流代批]]、[[流SQL受状态约束]]、[[传统Join状态最重]] |
章节与卡片
01 大数据技术概述
02 大数据必备编程知识
03 Flink的设计与运行原理
- 流图是逻辑契约 普通读书笔记卡
- 物理图承接分布式 普通读书笔记卡
- 交换策略决定成本 普通读书笔记卡
- 提交流程分层协作 普通读书笔记卡
- JobManager负责协调 普通读书笔记卡
- TaskManager执行任务 普通读书笔记卡
- 算子链减少交换 普通读书笔记卡
- Slot是资源单位 普通读书笔记卡
04 DataStream API的介绍和使用
- 程序骨架五步 普通读书笔记卡
- 转换改变流形态 普通读书笔记卡
- KeyBy定义聚合归属 普通读书笔记卡
- Reduce保留同型聚合 普通读书笔记卡
- Union与Connect分工 普通读书笔记卡
- 并行度塑造物理执行 普通读书笔记卡
- TypeInformation补类型 普通读书笔记卡
- Rich函数有生命周期 普通读书笔记卡
05 时间和窗口
- 三种时间语义 普通读书笔记卡
- Watermark推进事件时钟 普通读书笔记卡
- 水位线取慢者 普通读书笔记卡
- 延迟准确需权衡 普通读书笔记卡
- ProcessFunction贴近底层 普通读书笔记卡
- Timer是时间回调 普通读书笔记卡
- 侧输出分流异常 普通读书笔记卡
- 窗口给无界流切片 普通读书笔记卡
- 窗口函数分增全量 普通读书笔记卡
- 迟到数据需旁路 普通读书笔记卡
06 状态和检查点
- 状态保存业务记忆 普通读书笔记卡
- 托管状态可恢复 普通读书笔记卡
- Keyed与Operator状态 普通读书笔记卡
- 状态扩容要重分布 普通读书笔记卡
- Broadcast共享规则流 普通读书笔记卡
- Checkpoint备份本地状态 普通读书笔记卡
- Barrier切分快照边界 普通读书笔记卡
- 异步快照降停顿 普通读书笔记卡
- 增量快照省写入 普通读书笔记卡
- Savepoint服务运维 普通读书笔记卡
07 Flink连接器
- 连接器是系统边界 普通读书笔记卡
- 端到端一致靠两端 普通读书笔记卡
- 幂等写吸收重复 普通读书笔记卡
- 事务写延后可见 普通读书笔记卡
- 两阶段提交有协作成本 普通读书笔记卡
- 新版Source拆职责 普通读书笔记卡
08 Table API & SQL的介绍和使用
- SQL是更高抽象 普通读书笔记卡
- 环境桥接两套API 普通读书笔记卡
- 动态表持续变化 普通读书笔记卡
- 流SQL受状态约束 普通读书笔记卡
- 状态TTL防无限膨胀 普通读书笔记卡
- 时间属性进入表模型 普通读书笔记卡
- 窗口聚合靠时间字段 普通读书笔记卡
- 时间窗口Join限范围 普通读书笔记卡
- 临时表Join查版本 普通读书笔记卡
- 传统Join状态最重 普通读书笔记卡
09 Flink的部署和配置
- 部署模式适配基础设施 普通读书笔记卡
- 类加载保护依赖边界 普通读书笔记卡
- 并行度决定最低Slot 普通读书笔记卡
- 内存配置分角色 普通读书笔记卡
- 算子链是部署优化 普通读书笔记卡
- 槽位共享提升利用率 普通读书笔记卡
相关主题
暂无公开主题。