- 流处理理论理解不深:深入分析时间、窗口、水印、触发器、迟到生存期之间的关联关系,建立完整的流处理理论体系。
- Flink上手困难:从环境搭建到编程模型,通过案例驱动的方式帮助读者快速上手Flink开发。
- 实时机器学习落地难:深入讲解FlinkML的架构与实践,包括多项式曲线拟合、SVM分类、ALS-WR推荐算法的实现。
- 批流统一认知不足:同时讲解流处理API和批处理API,帮助读者理解Flink批流一体的设计理念。
- 生产环境部署困惑:涵盖指标度量与部署模式,帮助读者将Flink应用落地到生产环境。
- 大数据开发工程师:希望从批处理转向实时流处理,掌握Flink核心技术的从业者。
- 机器学习工程师:希望在流式计算平台上开展在线机器学习应用的技术人员。
- 数据架构师:需要设计实时数据处理架构,评估Flink技术选型的技术决策者。
- 计算机相关专业研究生:研究流式计算方向,需要深入理解Flink内部机制的学生。
- 先读第1章建立理论框架:流式数据架构理论是全书基石,务必先理解时间、窗口、水印等核心概念。
- 边读边动手实践:第2-4章的编程内容需要配合实际编码练习,建议搭建单机环境同步操作。
- 重点攻克第5章:FlinkML是本书特色章节,多项式曲线拟合和SVM部分需反复研读。
- 思考题不要跳过:每章末尾的思考题是检验理解程度的有效方式,建议认真作答。
- 结合官方文档:Flink版本迭代较快,建议结合最新官方文档补充学习。
- 流处理理论功底:深入理解流式数据处理的内在机制,掌握时间、窗口、水印等核心概念的关联。
- Flink开发能力:熟练使用Flink流处理API和批处理API进行实时大数据应用开发。
- 实时机器学习经验:掌握FlinkML的架构原理,能实现分类、回归、推荐等在线机器学习应用。
- 生产部署能力:了解Flink的部署模式和指标度量,具备将应用落地到生产环境的能力。
- 架构设计视野:理解流式数据架构的演进历程和设计原则,能做出合理的实时计算架构决策。
📖 书籍简介
本书介绍了当下流行的实时数据处理引擎Flink,讲解了流处理API、批处理API、机器学习引擎FlinkML、关系型API、复杂事件处理FLinkCEP,以及指标度量与部署模式。此外,本书展开分析了流式数据处理理论中时间、窗口、水印、触发器、迟到生存期之间的关联关系;深入分析了多项式曲线拟合、分类算法SVM、推荐算法ALS-WR的理论和FlinkML实现。希望快速上手Flink以开展实时大数据处理与在线机器学习应用的从业者,本书是不二的选择:本书首先介绍相关概念引入的原因、解决方案的演进过程、Flink的对应架构、编程案例以及开放式的思考问题。
资料目录:
第1章 流式数据架构理论 1
1.1 大数据处理架构演进历程 1
1.2 案例分析 8
1.2.1 SK 电信驾驶安全性评分 8
1.2.2 流式机器学习应用 12
1.3 流式数据架构基本概念 17
1.3.1 流 17
1.3.2 时间 18
1.3.3 窗口 21
1.3.4 水印 23
1.3.5 触发器 23
1.3.6 数据处理模式 23
1.3.7 如何理解流式数据架构的内在机制 27
1.4 根据事件时间开滚动窗口 28
1.4.1 what:转换/where:窗口 29
1.4.2 when:水印 29
1.4.3 when:触发器 32
1.4.4 when:迟到生存期 34
1.4.5 how:累加模式 35
1.5 一致性 37
1.5.1 有状态计算 37
1.5.2 exactly-once 语义 38
1.5.3 异步屏障快照 39
1.5.4 保存点 44
1.6 思考题 45
第2章 编程基础 46
2.1 Flink 概述 46
2.2 让轮子转起来 47
2.2.1 本书约定 47
2.2.2 搭建单机版环境 48
2.2.3 配置IDEA 51
2.3 编程模型 53
2.3.1 分层组件栈 53
2.3.2 流式计算模型 54
2.3.3 流处理编程 57
2.4 运行时 62
2.4.1 运行时结构 62
2.4.2 任务调度 66
2.4.3 物理执行计划 69
2.5 思考题 70
第3章 流处理API 71
3.1 流处理API 概述 71
3.2 时间处理 73
3.2.1 时间 73
3.2.2 水印 74
3.2.3 周期性水印生成器 75
3.2.4 间歇性水印生成器 77
3.2.5 递增式水印生成器 78
3.3 算子 79
3.3.1 算子函数 80
3.3.2 数据分区 83
3.3.3 资源共享 85
3.3.4 RichFunction 85
3.3.5 输出带外数据 86
3.4 窗口 86
3.4.1 窗口分类 87
3.4.2 窗口函数 90
3.4.3 触发器 94
3.4.4 清除器 96
3.4.5 迟到生存期 96
3.5 连接器 97
3.5.1 HDFS 连接器 98
3.5.2 Kafka 99
3.5.3 异步I/O 102
3.6 状态管理 104
3.6.1 状态分类 104
3.6.2 托管的Keyed State 104
3.6.3 状态后端配置 106
3.7 检查点 107
3.8 思考题 108
第4章 批处理API 109
4.1 批处理API 概述. 109
4.1.1 程序结构 110
4.1.2 Source 111
4.1.3 Sink 112
4.1.4 连接器 112
4.2 算子 113
4.2.1 算子函数 113
4.2.2 广播变量 121
4.2.3 文件缓存 122
4.2.4 容错 123
4.3 迭代 123
4.3.1 深度神经网络训练 123
4.3.2 网络社团发现算法 125
4.3.3 Bulk Iteration 127
4.3.4 Delta Iteration 的迭代形式 128
4.4 注解 130
4.4.1 直接转发 130
4.4.2 非直接转发 131
4.4.3 触达 132
4.5 思考题 132
第5章 机器学习引擎架构与应用编程 133
5.1 概述 133
5.1.1 数据加载 134
5.1.2 多项式曲线拟合的例子 135
5.2 流水线 137
5.2.1 机器学习面临的架构问题 137
5.2.2 Scikit-learn 架构实践总结 138
5.2.3 FlinkML 实现 140
5.3 深入分析多项式曲线拟合 170
5.3.1 数值计算的底层框架 170
5.3.2 向量 172
5.3.3 数据预处理 178
5.3.4 特征变换 184
5.3.5 线性拟合 188
5.4 分类算法 190
5.4.1 最优超平面 190
5.4.2 凸优化理论 193
5.4.3 求解最优超平面 198
5.4.4 核方法 200
5.4.5 软间隔 205
5.4.6 优化解法 208
5.4.7 SVM 的FlinkML 实现 211
5.4.8 SVM 的应用 220
5.5 推荐算法 221
5.5.1 推荐系统的分类 221
5.5.2 ALS-WR 算法 223
5.5.3 FlinkML 实现 225
5.5.4 ALS-WR 的应用 230
5.6 思考题 230
第6章 关系型API 234
6.1 为什么需要关系型API 234
6.2 Calcite 235
6.3 关系型API 概述. 236
6.3.1 程序结构 236
6.3.2 Table 运行时 239
6.3.3 表注册 241
6.3.4 TableSource 与TableSink 242
6.3.5 查询 244
6.3.6 相互转换 244
6.4 动态表概述 247
6.4.1 流式关系代数 247
6.4.2 动态表 248
6.4.3 持续查询 250
6.5 思考题 255
第7章 复杂事件处理 256
7.1 什么是复杂事件处理 256
7.1.1 股票异常交易检测 256
7.1.2 重新审视DataStream 与Table API 258
7.2 复杂事件处理的自动机理论 259
7.2.1 有穷自动机模型NFA 259
7.2.2 NFAb 模型 261
7.2.3 带版本号的共享缓存 263
7.3 FlinkCEP API 265
7.3.1 基本模式 266
7.3.2 模式拼合 267
7.3.3 模式分组 268
7.3.4 匹配输出 269
7.4 基于FlinkCEP 的股票异常交易检测的实现 270
7.5 思考题 274
第8章 监控与部署 275
8.1 监控 275
8.1.1 度量指标 275
8.1.2 指标的作用域 279
8.1.3 监控配置 279
8.2 集群部署模式 281
8.2.1 Standalone 281
8.2.2 YARN 281
8.2.3 高可用 284
8.3 访问安全 284
8.4 思考题 286
参考资料 287





📑 章节目录
- 流式数据架构理论:概念、演进与一致性
- Flink编程基础:环境搭建与编程模型
- 流处理API:时间、水印、算子与窗口
- 连接器与状态管理
- 检查点与容错机制
- 批处理API:算子、迭代与注解
- 机器学习引擎FlinkML架构与流水线
- 多项式曲线拟合的原理与实现
- 分类算法SVM与推荐算法ALS-WR实战
- 关系型API与复杂事件处理FlinkCEP
- 指标度量与生产环境部署模式