书籍详情
Flink技术内幕:架构设计与实现原理
作者:罗江宇,赵士杰,李涵淼,闵文俊 著
出版社:机械工业出版社
出版时间:2021-12-01
ISBN:9787111696292
定价:¥99.00
购买这本书可以去
内容简介
内容简介 这是一部从源代码角度出发,通过分析Flink的各个功能模块的实现来剖析Flink的架构设计和实现原理的著作。它将能指导读者更好地对Flink进行性能调优、可用性保障、效能优化和二次开发。 四位作者都是非常资深的Flink专家,部分作者是Flink源代码的维护者和改造者,本书总结了他们在阿里巴巴、蚂蚁集团、滴滴等企业的大规模Flink实践经验。 全书共11章,主要内容如下。 第1章 阅读Flink源代码前的准备 主要介绍了Flink源代码的获取、编译、调试,以及它的目录结构、设计理念和基本架构。此外,还分析了Flink与Hadoop MapReduce、Spark在设计上的差异。 第2~8章 Flink功能模块源代码和架构解析 从源码角度分析了Flink的编程模型与API、运行时组件与通信、状态管理与容错、任务提交与执行、Flink网络栈、Flink Connector、部署模式等功能模块的原理。力求让读者深入理解Flink的原理,而不只是跟着本书读一遍Flink源代码。原理和思想是不局限于某一个框架和技术,了解了Flink的原理和思想,可以将其扩展到其他框架和技术上。 第9~10章 Flink Table、SQL与Flink CEP 编程方式逐渐从原先基于Map-Reduce的任务模式向SQL化演进,SQL意味着标准和效率。这两章重点讲解了StreamTableEnvironment的实现过程、SQL的解析过程、Table Connector以及Flink CEP的内部实现原理。 第11章 Flink监控 主要讲解了Flink的监控指标、常用系统指标和监控体系的建设,以及常用的定位手段。
作者简介
作者简介 罗江宇 Flink技术专家,先后就职于新浪微博、滴滴和某大型电商公司。先后主导或参与了多家公司的Flink实时计算服务的构建、对超大规模集群的维护以及Flink引擎的改造。拥有丰富的实时计算实战经验,目前专注于Kubernetes调度、Flink SQL及Flink流批一体化方向。 赵士杰 资深大数据技术专家,曾就职于滴滴、阿里巴巴等一线互联网公司。从0到1深度参与了滴滴的大数据建设,拥有非常丰富的大数据平台一线建设经验,对于大数据领域的计算和存储引擎也有深入研究。 李涵淼 大数据研发专家,曾任滴滴大数据开发工程师。从事大数据领域工作多年,参与过多家公司流计算平台的设计与研发,目前专注于批流一体、OLAP技术方向的研究与应用。 闵文俊 蚂蚁集团技术专家、开源大数据社区爱好者、Flink Contributor,在实时计算领域工作多年,深度参与了滴滴、蚂蚁集团的实时计算平台建设。
目录
前 言
第1章 阅读Flink源代码前的准备 1
11 环境准备 1
12 获取、编译和调试Flink的源代码 4
121 获取与导入Flink源代码 4
122 编译与调试Flink源代码 6
13 Flink源代码的目录结构 9
14 Flink设计理念与基本架构 11
141 Flink与主流计算引擎对比 11
142 Flink基本架构 14
15 本章小结 17
第2章 编程模型与API 18
21 DataStream 18
22 算子 21
23 窗口 28
231 窗口的基本概念 28
232 窗口的执行流程 30
233 窗口分配器 32
234 触发器 37
235 窗口函数 41
24 本章小结 43
第3章 运行时组件与通信 44
31 运行时组件 44
311 REST 45
312 Dispatcher 54
313 ResourceManager 61
314 JobMaster 75
315 TaskExecutor 85
32 组件间通信 95
321 Akka与Actor模型 95
322 组件间通信实现 99
33 运行时组件的高可用 117
331 Master节点上组件的高可用 117
332 现有运行时组件高可用存在的问题及其解决方案 126
34 本章小结 128
第4章 状态管理与容错 129
41 状态 129
411 状态的原理与实现 129
412 状态生存时间的原理与实现 134
42 检查点 137
421 检查点机制原理 137
422 检查点执行过程 137
423 任务容错 140
43 状态后端 143
44 本章小结 148
第5章 任务提交与执行 149
51 任务提交整体流程 149
52 DAG转换 152
521 DAG的4层转换 152
522 WordCount转换过程 152
53 Slot分配 160
531 相关概念和实现类 160
532 Slot申请流程 162
533 任务部署 168
54 任务执行机制 170
541 任务执行过程 170
542 MailBox线程模型 174
55 本章小结 177
第6章 Flink网络栈 178
61 内存管理 178
62 网络传输 182
621 什么是Flink网络栈 182
622 非流控模型的网络传输流程 184
623 流控模型的网络传输流程 197
63 流批一体的shuffle架构 199
631 生命周期管理 199
632 数据shuffle 207
64 本章小结 208
第7章 Flink Connector的设计与实现 209
71 Kafka Connector实现原理 209
711 Kafka Source Connector实现 209
712 Kafka Sink Connector 实现 216
72 HBase Table Connector 实现原理 220
721 HBase Source Connector和Sink Connector的工厂实现 221
722 HBase维表实现 222
73 本章小结 224
第8章 部署模式 225
81 Local部署 225
82 Standalone部署 228
83 Flink on YARN模式 240
831 YARN基本架构 240
832 Flink on YARN模式介绍 241
833 Flink on YARN启动过程 243
84 Flinkon Kubernetes模式 260
85 本章小结 265
第9章 Flink Table与SQL 266
91 StreamTableEnvironment类介绍 266
911 StreamExecution-Environment类 267
912 EnvironmentSettings类 267
913 TableConfig类 268
914 StreamTableEnvironment的创建过程 269
92 SQL解析过程 270
921 SQL解析 270
922 SQL优化 277
923 RelNode转换 279
93 Table Connector 281
931 TableSource 282
932 TableSink 286
933 SPI机制在Table Connector中的应用 288
94 UDF与内置算子 292
941 UDF 292
942 内置算子 294
95 本章小结 297
第10章 Flink CEP 原理解析 298
101 CEP的基本概念 298
1011 什么是Flink CEP 298
1012 Pattern 298
1013 量词 300
1014 条件 301
1015 连接 302
1016 Flink CEP作业编写举例 302
102 CEP内部实现原理 304
1021 NFA简介 305
1022 匹配过程 305
1023 CEP状态存储 310
1024 CEP和SQL结合 313
103 本章小结 315
第11章 Flink监控 316
111 监控指标 316
1111 指标类型 316
1112 系统指标及自定义指标 318
1113 指标的使用 319
112 常用系统指标 322
113 监控体系建设 324
1131 指标监控及展示 324
1132 日志分析处理 326
1133 定位手段 326
114 本章小结 327
第1章 阅读Flink源代码前的准备 1
11 环境准备 1
12 获取、编译和调试Flink的源代码 4
121 获取与导入Flink源代码 4
122 编译与调试Flink源代码 6
13 Flink源代码的目录结构 9
14 Flink设计理念与基本架构 11
141 Flink与主流计算引擎对比 11
142 Flink基本架构 14
15 本章小结 17
第2章 编程模型与API 18
21 DataStream 18
22 算子 21
23 窗口 28
231 窗口的基本概念 28
232 窗口的执行流程 30
233 窗口分配器 32
234 触发器 37
235 窗口函数 41
24 本章小结 43
第3章 运行时组件与通信 44
31 运行时组件 44
311 REST 45
312 Dispatcher 54
313 ResourceManager 61
314 JobMaster 75
315 TaskExecutor 85
32 组件间通信 95
321 Akka与Actor模型 95
322 组件间通信实现 99
33 运行时组件的高可用 117
331 Master节点上组件的高可用 117
332 现有运行时组件高可用存在的问题及其解决方案 126
34 本章小结 128
第4章 状态管理与容错 129
41 状态 129
411 状态的原理与实现 129
412 状态生存时间的原理与实现 134
42 检查点 137
421 检查点机制原理 137
422 检查点执行过程 137
423 任务容错 140
43 状态后端 143
44 本章小结 148
第5章 任务提交与执行 149
51 任务提交整体流程 149
52 DAG转换 152
521 DAG的4层转换 152
522 WordCount转换过程 152
53 Slot分配 160
531 相关概念和实现类 160
532 Slot申请流程 162
533 任务部署 168
54 任务执行机制 170
541 任务执行过程 170
542 MailBox线程模型 174
55 本章小结 177
第6章 Flink网络栈 178
61 内存管理 178
62 网络传输 182
621 什么是Flink网络栈 182
622 非流控模型的网络传输流程 184
623 流控模型的网络传输流程 197
63 流批一体的shuffle架构 199
631 生命周期管理 199
632 数据shuffle 207
64 本章小结 208
第7章 Flink Connector的设计与实现 209
71 Kafka Connector实现原理 209
711 Kafka Source Connector实现 209
712 Kafka Sink Connector 实现 216
72 HBase Table Connector 实现原理 220
721 HBase Source Connector和Sink Connector的工厂实现 221
722 HBase维表实现 222
73 本章小结 224
第8章 部署模式 225
81 Local部署 225
82 Standalone部署 228
83 Flink on YARN模式 240
831 YARN基本架构 240
832 Flink on YARN模式介绍 241
833 Flink on YARN启动过程 243
84 Flinkon Kubernetes模式 260
85 本章小结 265
第9章 Flink Table与SQL 266
91 StreamTableEnvironment类介绍 266
911 StreamExecution-Environment类 267
912 EnvironmentSettings类 267
913 TableConfig类 268
914 StreamTableEnvironment的创建过程 269
92 SQL解析过程 270
921 SQL解析 270
922 SQL优化 277
923 RelNode转换 279
93 Table Connector 281
931 TableSource 282
932 TableSink 286
933 SPI机制在Table Connector中的应用 288
94 UDF与内置算子 292
941 UDF 292
942 内置算子 294
95 本章小结 297
第10章 Flink CEP 原理解析 298
101 CEP的基本概念 298
1011 什么是Flink CEP 298
1012 Pattern 298
1013 量词 300
1014 条件 301
1015 连接 302
1016 Flink CEP作业编写举例 302
102 CEP内部实现原理 304
1021 NFA简介 305
1022 匹配过程 305
1023 CEP状态存储 310
1024 CEP和SQL结合 313
103 本章小结 315
第11章 Flink监控 316
111 监控指标 316
1111 指标类型 316
1112 系统指标及自定义指标 318
1113 指标的使用 319
112 常用系统指标 322
113 监控体系建设 324
1131 指标监控及展示 324
1132 日志分析处理 326
1133 定位手段 326
114 本章小结 327
猜您喜欢