[套装书]Flink技术内幕:架构设计与实现原理+Flink原理、实战与性能优化(2册)

作者
罗江宇 赵士杰 李涵淼 闵文俊 等
丛书名
大数据技术丛书
出版社
机械工业出版社
ISBN
9782112151728
简要
简介
内容简介书籍计算机书籍 ---------------------------8084940 - 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的监控指标、常用系统指标和监控体系的建设,以及常用的定位手段。 . ---------------------------8058977 - Flink原理、实战与性能优化--------------------------- 内容简介 这是一部以实战为导向,能指导读者零基础掌握Flink并快速完成进阶的著作,从功能、原理、实战和调优等4个维度循序渐进地讲解了如何利用Flink进行分布式流式应用开发。作者是该领域的资深专家,现就职于第四范式,曾就职于明略数据。 全书一共10章,逻辑上可以分为三个部分: 第一部分(第1~2章) 主要介绍了Flink的核心概念、特性、应用场景、基本架构,开发环境的搭建和配置,以及源代码的编译。 第二部分(第3~9章) 详细讲解了Flink的编程范式,各种编程接口的功能、应用场景和使用方法,以及核心模块和组件的原理和使用。 第三部分(第10章) 重点讲解了Flink的监控和优化,参数调优,以及对反压、Checkpoint和内存的优化。
目录
[套装书具体书目]
8058977 - Flink原理、实战与性能优化 - 9787111623533 - 机械工业出版社 - 定价 79
8084940 - Flink技术内幕:架构设计与实现原理 - 9787111696292 - 机械工业出版社 - 定价 99



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


前 言
第1章 阅读Flink源代码前的准备 1
1.1 环境准备 1
1.2 获取、编译和调试Flink的源代码 4
1.2.1 获取与导入Flink源代码 4
1.2.2 编译与调试Flink源代码 6
1.3 Flink源代码的结构 9
1.4 Flink设计理念与基本架构 11
1.4.1 Flink与主流计算引擎对比 11
1.4.2 Flink基本架构 14
1.5 本章小结 17
第2章 编程模型与API 18
2.1 DataStream 18
2.2 算子 21
2.3 窗口 28
2.3.1 窗口的基本概念 28
2.3.2 窗口的执行流程 30
2.3.3 窗口分配器 32
2.3.4 触发器 37
2.3.5 窗口函数 41
2.4 本章小结 43
第3章 运行时组件与通信 44
3.1 运行时组件 44
3.1.1 REST 45
3.1.2 Dispatcher 54
3.1.3 ResourceManager 61
3.1.4 JobMaster 75
3.1.5 TaskExecutor 85
3.2 组件间通信 95
3.2.1 Akka与Actor模型 95
3.2.2 组件间通信实现 99
3.3 运行时组件的高可用 117
3.3.1 Master节点上组件的高可用 117
3.3.2 现有运行时组件高可用存在的问题及其解决方案 126
3.4 本章小结 128
第4章 状态管理与容错 129
4.1 状态 129
4.1.1 状态的原理与实现 129
4.1.2 状态生存时间的原理与实现 134
4.2 检查点 137
4.2.1 检查点机制原理 137
4.2.2 检查点执行过程 137
4.2.3 任务容错 140
4.3 状态后端 143
4.4 本章小结 148
第5章 任务提交与执行 149
5.1 任务提交整体流程 149
5.2 DAG转换 152
5.2.1 DAG的4层转换 152
5.2.2 WordCount转换过程 152
5.3 Slot分配 160
5.3.1 相关概念和实现类 160
5.3.2 Slot申请流程 162
5.3.3 任务部署 168
5.4 任务执行机制 170
5.4.1 任务执行过程 170
5.4.2 MailBox线程模型 174
5.5 本章小结 177
第6章 Flink网络栈 178
6.1 内存管理 178
6.2 网络传输 182
6.2.1 什么是Flink网络栈 182
6.2.2 非流控模型的网络传输流程 184
6.2.3 流控模型的网络传输流程 197
6.3 流批一体的shuffle架构 199
6.3.1 生命周期管理 199
6.3.2 数据shuffle 207
6.4 本章小结 208
第7章 Flink Connector的设计与实现 209
7.1 Kafka Connector实现原理 209
7.1.1 Kafka Source Connector实现 209
7.1.2 Kafka Sink Connector 实现 216
7.2 HBase Table Connector 实现原理 220
7.2.1 HBase Source Connector和Sink Connector的工厂实现 221
7.2.2 HBase维表实现 222
7.3 本章小结 224
第8章 部署模式 225
8.1 Local部署 225
8.2 Standalone部署 228
8.3 Flink on YARN模式 240
8.3.1 YARN基本架构 240
8.3.2 Flink on YARN模式介绍 241
8.3.3 Flink on YARN启动过程 243
8.4 Flinkon Kubernetes模式 260
8.5 本章小结 265
第9章 Flink Table与SQL 266
9.1 StreamTableEnvironment类介绍 266
9.1.1 StreamExecution-Environment类 267
9.1.2 EnvironmentSettings类 267
9.1.3 TableConfig类 268
9.1.4 StreamTableEnvironment的创建过程 269
9.2 SQL解析过程 270
9.2.1 SQL解析 270
9.2.2 SQL优化 277
9.2.3 RelNode转换 279
9.3 Table Connector 281
9.3.1 TableSource 282
9.3.2 TableSink 286
9.3.3 SPI机制在Table Connector中的应用 288
9.4 UDF与内置算子 292
9.4.1 UDF 292
9.4.2 内置算子 294
9.5 本章小结 297
第10章 Flink CEP 原理解析 298
10.1 CEP的基本概念 298
10.1.1 什么是Flink CEP 298
10.1.2 Pattern 298
10.1.3 量词 300
10.1.4 条件 301
10.1.5 连接 302
10.1.6 Flink CEP作业编写举例 302
10.2 CEP内部实现原理 304
10.2.1 NFA简介 305
10.2.2 匹配过程 305
10.2.3 CEP状态存储 310
10.2.4 CEP和SQL结合 313
10.3 本章小结 315
第11章 Flink监控 316
11.1 监控指标 316
11.1.1 指标类型 316
11.1.2 系统指标及自定义指标 318
11.1.3 指标的使用 319
11.2 常用系统指标 322
11.3 监控体系建设 324
11.3.1 指标监控及展示 324
11.3.2 日志分析处理 326
11.3.3 定位手段 326
11.4 本章小结 327



---------------------------8058977 - Flink原理、实战与性能优化---------------------------


前言
第1章 Apache Flink介绍 1
1.1 Apache Flink是什么 1
1.2 数据架构的演变 2
1.2.1 传统数据基础架构 3
1.2.2 大数据数据架构 4
1.2.3 有状态流计算架构 5
1.2.4 为什么会是Flink 6
1.3 Flink应用场景 8
1.4 Flink基本架构 10
1.4.1 基本组件栈 10
1.4.2 基本架构图 11
1.5 本章小结 13
第2章 环境准备 14
2.1 运行环境介绍 14
2.2 Flink项目模板 15
2.2.1 基于Java实现的项目模板 15
2.2.2 基于Scala实现的项目模板 18
2.3 Flink开发环境配置 20
2.3.1 下载IntelliJ IDEA IDE 21
2.3.2 安装Scala Plugins 21
2.3.3 导入Flink应用代码 22
2.3.4 项目配置 22
2.4 运行Scala REPL 24
2.4.1 环境支持 24
2.4.2 运行程序 24
2.5 Flink源码编译 25
2.6 本章小结 26
第3章 Flink编程模型 27
3.1 数据集类型 27
3.2 Flink编程接口 29
3.3 Flink程序结构 30
3.4 Flink数据类型 37
3.4.1 数据类型支持 37
3.4.2 TypeInformation信息获取 40
3.5 本章小结 43
第4章 DataStream API 介绍与使用 44
4.1 DataStream编程模型 44
4.1.1 DataSources数据输入 45
4.1.2 DataSteam转换操作 49
4.1.3 DataSinks数据输出 59
4.2 时间概念与Watermark 61
4.2.1 时间概念类型 61
4.2.2 EventTime和Watermark 63
4.3 Windows窗口计算 69
4.3.1 Windows Assigner 70
4.3.2 Windows Function 77
4.3.3 Trigger窗口触发器 83
4.3.4 Evictors数据剔除器 87
4.3.5 延迟数据处理 88
4.3.6 连续窗口计算 89
4.3.7 Windows多流合并 90
4.4 作业链和资源组 95
4.4.1 作业链 95
4.4.2 Slots资源组 96
4.5 Asynchronous I/O异步操作 97
4.6 本章小结 98
第5章 Flink状态管理和容错 100
5.1 有状态计算 100
5.2 Checkpoints和Savepoints 109
5.2.1 Checkpoints检查点机制 109
5.2.2 Savepoints机制 111
5.3 状态管理器 114
5.3.1 StateBackend类别 114
5.3.2 状态管理器配置 116
5.4 Querable State 118
5.5 本章小结 123
第6章 DataSet API介绍与使用 124
6.1 DataSet API 124
6.1.1 应用实例 125
6.1.2 DataSources数据接入 126
6.1.3 DataSet转换操作 128
6.1.4 DataSinks数据输出 134
6.2 迭代计算 136
6.2.1 全量迭代 136
6.2.2 增量迭代 137
6.3 广播变量与分布式缓存 139
6.3.1 广播变量 139
6.3.2 分布式缓存 140
6.4 语义注解 141
6.4.1 Forwarded Fileds注解 141
6.4.2 Non-Forwarded Fileds注解 143
6.4.3 Read Fields注解 144
6.5 本章小结 145
第7章 Table API & SQL介绍与使用 146
7.1 TableEnviroment概念 146
7.1.1 开发环境构建 147
7.1.2 TableEnvironment基本操作 147
7.1.3 外部连接器 155
7.1.4 时间概念 162
7.1.5 Temporal Tables临时表 166
7.2 Flink Table API 167
7.2.1 Table API应用实例 167
7.2.2 数据查询和过滤 168
7.2.3 窗口操作 168
7.2.4 聚合操作 173
7.2.5 多表关联 175
7.2.6 集合操作 177
7.2.7 排序操作 178
7.2.8 数据写入 179
7.3 Flink SQL使用 179
7.3.1 Flink SQL实例 179
7.3.2 执行SQL 180
7.3.3 数据查询与过滤 181
7.3.4 Group Windows窗口操作 182
7.3.5 数据聚合 184
7.3.6 多表关联 186
7.3.7 集合操作 187
7.3.8 数据输出 189
7.4 自定义函数 189
7.4.1 Scalar Function 189
7.4.2 Table Function 191
7.4.3 Aggregation Function 192
7.5 自定义数据源 193
7.5.1 TableSource定义 193
7.5.2 TableSink定义 196
7.5.3 TableFactory定义 199
7.6 本章小结 201
第8章 Flink组件栈介绍与使用 202
8.1 Flink复杂事件处理 202
8.1.1 基础概念 203
8.1.2 Pattern API 204
8.1.3 事件获取 210
8.1.4 应用实例 212
8.2 Flink Gelly图计算应用 213
8.2.1 基本概念 213
8.2.2 Graph API 214
8.2.3 迭代图处理 220
8.2.4 图生成器 226
8.3 FlinkML机器学习应用 227
8.3.1 基本概念 227
8.3.2 有监督学习算子 229
8.3.3 数据预处理 231
8.3.4 推荐算法 234
8.3.5 Pipelines In FlinkML 235
8.4 本章小结 236
第9章 Flink部署与应用 237
9.1 Flink集群部署 237
9.1.1 Standalone Cluster部署 238
9.1.2 Yarn Cluster部署 240
9.1.3 Kubernetes Cluster部署 244
9.2 Flink高可用配置 247
9.2.1 Standalone集群高可用配置 248
9.2.2 Yarn Session集群高可用配置 250
9.3 Flink安全管理 251
9.3.1 认证目标 251
9.3.2 认证配置 252
9.3.3 SSL配置 253
9.4 Flink集群升级 255
9.4.1 任务重启 256
9.4.2 状态维护 256
9.4.3 版本升级 257
9.5 本章小结 258
第10章 Flink监控与性能优化 259
10.1 监控指标 259
10.1.1 系统监控指标 259
10.1.2 监控指标注册 261
10.1.3 监控指标报表 264
10.2 Backpressure监控与优化 266
10.2.1 Backpressure进程抽样 266
10.2.2 Backpressure页面监控 267
10.2.3 Backpressure配置 268
10.3 Checkpointing监控与优化 268
10.3.1 Checkpointing页面监控 268
10.3.2 Checkpointing优化 271
10.4 Flink内存优化 273
10.4.1 Flink内存配置 274
10.4.2 Network Buffers配置 275
10.5 本章小结 277

推荐

车牌查询
桂ICP备20004708号-3