Flink技术内幕:架构设计与实现原理

Flink技术内幕:架构设计与实现原理

作者:罗江宇赵士杰李涵淼 等

出版社:机械工业

出版年:2021年12月

ISBN:9787111696292

所属分类:经济金融

书刊介绍

《Flink技术内幕:架构设计与实现原理》内容简介

这是一部从源代码角度出发,通过分析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.1、环境准备
1.2、获取、编译和调试Flink的源代码
1.2.1、获取与导入Flink源代码
1.2.2、编译与调试Flink源代码
1.3、Flink源代码的目录结构
1.4、Flink设计理念与基本架构
1.4.1、Flink与主流计算引擎对比
1.4.2、Flink基本架构
1.5、本章小结
第2章:编程模型与API
2.1、DataStream
2.2、算子
2.3、窗口
2.3.1、窗口的基本概念
2.3.2、窗口的执行流程
2.3.3、窗口分配器
2.3.4、触发器
2.3.5、窗口函数
2.4、本章小结
第3章:运行时组件与通信
3.1、运行时组件
3.1.1、REST
3.1.2、Dispatcher
3.1.3、ResourceManager
3.1.4、JobMaster
3.1.5、TaskExecutor
3.2、组件间通信
3.2.1、Akka与Actor模型
3.2.2、组件间通信实现
3.3、运行时组件的高可用
3.3.1、Master节点上组件的高可用
3.3.2、现有运行时组件高可用存在的问题及其解决方案
3.4、本章小结
第4章:状态管理与容错
4.1、状态
4.1.1、状态的原理与实现
4.1.2、状态生存时间的原理与实现
4.2、检查点
4.2.1、检查点机制原理
4.2.2、检查点执行过程
4.2.3、任务容错
4.3、状态后端
4.4、本章小结
第5章:任务提交与执行
5.1、任务提交整体流程
5.2、DAG转换
5.2.1、DAG的4层转换
5.2.2、WordCount转换过程
5.3、Slot分配
5.3.1、相关概念和实现类
5.3.2、Slot申请流程
5.3.3、任务部署
5.4、任务执行机制
5.4.1、任务执行过程
5.4.2、MailBox线程模型
5.5、本章小结
第6章:Flink网络栈
6.1、内存管理
6.2、网络传输
6.2.1、什么是Flink网络栈
6.2.2、非流控模型的网络传输流程
6.2.3、流控模型的网络传输流程
6.3、流批一体的shuffle架构
6.3.1、生命周期管理
6.3.2、数据shuffle
6.4、本章小结
第7章:Flink
Connector的设计与实现
7.1、Kafka
Connector实现原理
7.1.1、Kafka
Source
Connector实现
7.1.2、Kafka
Sink
Connector实现
7.2、HBase
Table
Connector实现原理
7.2.1、HBase
Source
Connector和Sink
Connector的工厂实现
7.2.2、HBase维表实现
7.3、本章小结
第8章:部署模式
8.1、Local部署
8.2、Standalone部署
8.3、Flink
on
YARN模式
8.3.1、YARN基本架构
8.3.2、Flink
on
YARN模式介绍
8.3.3、Flink
on
YARN启动过程
8.4、Flinkon
Kubernetes模式
8.5、本章小结
第9章:Flink
Table与SQL
9.1、StreamTableEnvironment类介绍
9.1.1、StreamExecutionEnvironment类
9.1.2、EnvironmentSettings类
9.1.3、TableConfig类
9.1.4、StreamTableEnvironment的创建过程
9.2、SQL解析过程
9.2.1、SQL解析
9.2.2、SQL优化
9.2.3、RelNode转换
9.3、Table
Connector
9.3.1、TableSource
9.3.2、TableSink
9.3.3、SPI机制在Table
Connector中的应用
9.4、UDF与内置算子
9.4.1、UDF
9.4.2、内置算子
9.5、本章小结
第10章:Flink
CEP原理解析
10.1、CEP的基本概念
10.1.1、什么是Flink
CEP
10.1.2、Pattern
10.1.3、量词
10.1.4、条件
10.1.5、连接
10.1.6、Flink
CEP作业编写举例
10.2、CEP内部实现原理
10.2.1、NFA简介
10.2.2、匹配过程
10.2.3、CEP状态存储
10.2.4、CEP和SQL结合
10.3、本章小结
第11章:Flink监控
11.1、监控指标
11.1.1、指标类型
11.1.2、系统指标及自定义指标
11.1.3、指标的使用
11.2、常用系统指标
11.3、监控体系建设
11.3.1、指标监控及展示
11.3.2、日志分析处理
11.3.3、定位手段
11.4、本章小结

相关推荐

微信二维码