具体描述
《深入理解Flink:实时大数据处理实践》介绍了实时数据处理引擎Flink,讲解了流处理API、批处理API、机器学习引擎FlinkML、关系型API、复杂事件处理,以及指标度量与部署模式,分析了流式数据处理理论中时间、窗口、水印、触发器、迟到生存期之间的关联和关系,深入分析了多项式曲线拟合、分类算法、推荐算法的理论和FlinkML实现。
《深入理解Flink:实时大数据处理实践》适合希望快速上手Flink 以开展实时大数据处理与在线机器学习应用的从业者阅读。
作者简介
目录信息
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的定位,然后迅速切入到微观的算子和数据流转换。我特别喜欢它在讲解窗口操作(Windowing)时所采用的分类和对比方式。无论是滚动窗口、滑动窗口还是会话窗口,作者都给出了详尽的示例,并且特别强调了在处理乱序数据和延迟数据时,窗口的触发机制会产生怎样的差异。这种对细节的把控,是很多流行框架书籍所欠缺的。此外,书中对Flink的运行时架构,如JobManager和TaskManager之间的交互、内存管理策略的讲解,让我对性能调优有了更深层次的理解。每次遇到性能瓶颈时,我都能翻到相关章节,找到优化的突破口,这本书的实战价值无可替代。
这本书的排版和配图质量令人印象深刻,这在技术书籍中是难得的优点。清晰的图表能够极大地辅助对复杂概念的理解。例如,在解释DataStream的并行度与分区(Partitioning)如何影响数据流时,作者使用的流程图清晰地展示了数据如何在不同的TaskSlot之间流动和重组。这比纯文字描述要高效得多。另外,这本书的语言风格兼具学术的严谨性和工程师的务实性。它在阐述原理时毫不含糊,但在给出代码示例时又力求简洁明了,使得学习曲线相对平滑。我感觉作者在编写这本书时,是真正站在一个渴望快速掌握这项技术的读者的角度去思考的,每一个知识点的展开都考虑到了读者的认知负荷和实际操作需求,这使得整个阅读体验非常流畅和愉悦。
这本书的作者在讲解分布式系统和流处理框架时,展现出了扎实的理论功底和丰富的实战经验。我尤其欣赏他对数据一致性和容错机制的深入剖析。在如今这个对数据实时性要求越来越高的时代,理解这些底层机制是构建高可用、高性能流处理应用的关键。书中对Flink Checkpoint和Savepoint的机制进行了细致的阐述,并结合实际案例说明了如何正确地配置和使用它们来保证状态的一致性。很多市面上的书籍只是简单地介绍API的使用,但这本书却能穿透这些表面功夫,直达核心。读完后,我感觉对如何设计一个健壮的流处理作业有了全新的认识,不再是简单地调用API,而是能从系统设计的角度去思考问题,比如如何在高并发场景下优化数据流的分发策略,以及如何处理罕见的网络分区事件。这种深度和广度,使得这本书成为我案头必备的参考手册。
作为一名初次接触大数据流处理的工程师,我发现这本书的入门门槛设置得相当友好,但同时又提供了足够的深度来满足进阶开发者的需求。它没有上来就堆砌复杂的数学公式或晦涩的术语,而是循序渐进地通过清晰的架构图和代码片段来引导读者理解Flink的核心概念。比如,对于时间语义(Event Time, Processing Time, Ingestion Time)的讲解,作者用了非常直观的比喻,让我这个容易混淆概念的人也能迅速掌握其中的奥妙。书中对API层面的讲解也非常到位,从基础的DataStream API到更高级的Table API和SQL,每一步都有明确的指导。更难能可贵的是,书中还涉及了如何将Flink与其他大数据生态系统(如Kafka、HBase等)进行集成,这对于我们实际工作中的系统搭建非常有指导意义。这本书确实做到了理论与实践的完美结合,让学习过程充满了成就感。
坦白说,市面上的很多技术书籍读起来都像是在应付差事,干巴巴的,读完后除了记住几个关键字,实际应用能力提升有限。然而,这本书给我的感觉完全不同,它更像是一位经验丰富的老兵在手把手地带你“趟坑”。作者在书中多次提到了生产环境中遇到的“陷阱”和“坑点”,例如在状态后端选择上的误区,或者在处理大规模Key的场景下State TTL的正确设置方法。这些都是书本上很少直接提及,但却是实际部署中必须面对的问题。通过阅读这些“避坑指南”,我避免了在自己的项目中走很多弯路。这种基于真实生产经验的总结,比单纯的官方文档要宝贵得多,它教会了我如何用一种更加审慎和成熟的态度去对待实时系统的构建和维护工作。
官方文档简单翻译。字体间距放那么大,硬生生凑出了两百多页。全本书透露了四个字:浮躁,骗钱!
垃圾 机翻了一遍官方文档 连检查都不检查一遍的那种机翻!!
真的垃圾,没有干货,缺乏逻辑
垃圾 机翻了一遍官方文档 连检查都不检查一遍的那种机翻!!
一星,不能再多,就是垃圾书,不要浪费钱买,里面都是浅尝辄止,我最最讨厌的是大量的贴代码占篇幅。垃圾书