好书推荐 好书速递 排行榜 读书文摘

基于Apache Flink的流处理

基于Apache Flink的流处理
作者:[美] 比安‧霍斯克 / [美] 瓦西里基‧卡拉夫里
译者:崔星灿
副标题:流式应用基础、实现及操作
出版社:中国电力出版社
出版年:2020-01
ISBN:9787519840112
行业:其它
浏览数:217

内容简介

带你走近Apache Flink,一个为全世界多个最大规模级别的流处理应用提供支持的开源框架。通过本书,你将探索并行流处理的基本概念并了解该技术与传统批处理的区别。

......(更多)

作者简介

Fabian Hueske是Apache Flink项目的PMC成员,他从Flink项目创始之初就开始参与贡献。Fabian是data Artisans(现在的Ververica)公司的创始人之一,拥有柏林工业大学的计算机科学博士学位。

Vasiliki Kalavri是苏黎世联邦理工学院系统组的博士后研究员。她同样也是Apache Flink项目的PMC成员。作为Flink早期贡献者,Vasiliki参与了图计算库Gelly以及初期版本的Table API和流式SQL的建设工作。

译者介绍

崔星灿,加拿大约克大学博士后,分布式流处理技术和开源爱好者,Apache Flink Committer。

......(更多)

目录

前言 .1

第1 章 状态化流处理概述 .7

传统数据处理架构 .8

事务型处理 8

分析型处理.9

状态化流处理 11

事件驱动型应用 .13

数据管道 14

流式分析 15

开源流处理的演变 .16

历史回顾 17

Flink 快览 18

运行首个Flink 应用 .20

小结 .23

第2 章 流处理基础 . 25

Dataflow 编程概述 25

Dataflow 图 25

数据并行和任务并行 26

数据交换策略 .27

并行流处理 28

延迟和吞吐.28

数据流上的操作 .31

时间语义 .36

流处理场景下一分钟的含义 37

处理时间 38

事件时间 39

水位线 40

处理时间与事件时间 41

状态和一致性模型 .41

任务故障 43

结果保障 44

小结 .46

第3 章 Apache Flink 架构 . 47

系统架构 .47

搭建Flink 所需组件 .48

应用部署 50

任务执行 51

高可用性设置 .52

Flink 中的数据传输 .54

基于信用值的流量控制 56

任务链接 57

事件时间处理 58

时间戳 59

水位线 59

水位线传播和事件时间 61

时间戳分配和水位线生成 63

状态管理 .64

算子状态 65

键值分区状态 .66

状态后端 68

有状态算子的扩缩容 68

检查点、保存点及状态恢复 71

一致性检查点 .71

从一致性检查点中恢复 72

Flink 检查点算法 .74

检查点对性能的影响 79

保存点 79

小结 .82

第4 章 设置Apache Flink 开发环境 83

所需软件 .83

在IDE 中运行和调试Flink 程序 .84

在IDE 中导入书中示例 .84

在IDE 中运行Flink 程序 .87

在IDE 中调试Flink 程序 88

创建Flink Maven 项目 89

小结 .90

第5 章 DataStream API (1.7 版本) . 91

Hello, Flink! 91

设置执行环境 .93

读取输入流.94

应用转换 94

输出结果 95

执行 96

转换操作 .96

基本转换 97

基于KeyedStream 的转换 100

多流转换 104

分发转换 108

设置并行度 111

类型 . 112

支持的数据类型 . 113

为数据类型创建类型信息 116

显式提供类型信息 . 117

定义键值和引用字段 . 118

字段位置 118

字段表达式. 119

键值选择器.120

实现函数 .121

函数类 121

Lambda 函数 122

富函数 123

导入外部和Flink 依赖 124

小结 .125

第6 章 基于时间和窗口的算子 127

配置时间特性 127

分配时间戳和生成水位线 129

水位线、延迟及完整性问题 133

处理函数 .134

时间服务和计时器 .136

向副输出发送数据 .138

CoProcessFunction .140

窗口算子 .141

定义窗口算子 .142

内置窗口分配器 .143

在窗口上应用函数 .148

自定义窗口算子 .155

基于时间的双流Join .167

基于间隔的Join .167

基于窗口的Join .168

处理迟到数据 170

丢弃迟到事件 .170

重定向迟到事件 .171

基于迟到事件更新结果 172

小结 .174

第7 章 有状态算子和应用 . 175

实现有状态函数 176

在RuntimeContext 中声明键值分区状态 .176

通过ListCheckpointed 接口实现算子列表状态 .180

使用CheckpointedFunction 接口 .187

接收检查点完成通知 189

为有状态的应用开启故障恢复 190

确保有状态应用的可维护性 190

指定算子唯一标识 .191

为使用键值分区状态的算子定义最大并行度 192

有状态应用的性能及鲁棒性 192

选择状态后端 .193

选择状态原语 .194

防止状态泄露 .195

更新有状态应用 198

保持现有状态更新应用 199

从应用中删除状态 .200

修改算子的状态 .200

可查询式状态 .202

可查询式状态服务的架构及启用方式203

对外暴露可查询式状态 204

从外部系统查询状态 205

小结 .207

第8 章 读写外部系统 209

应用的一致性保障 .210

幂等性写 211

事务性写 211

内置连接器 213

Apache Kafka 数据源连接器 214

Apache Kafka 数据汇连接器 218

文件系统数据源连接器 222

文件系统数据汇连接器 224

Apache Cassandra 数据汇连接器 .228

实现自定义数据源函数 .232

可重置的数据源函数 233

数据源函数、时间戳及水位线 .235

实现自定义数据汇函数 .236

幂等性数据汇连接器 238

事务性数据汇连接器 239

异步访问外部系统 .248

小结 .251

第9 章 搭建Flink 运行流式应用 253

部署模式 .253

独立集群 254

Docker 256

Apache Hadoop YARN .258

Kubernetes 261

高可用性设置 266

独立集群的HA 设置 267

YARN 上的HA 设置 268

Kubernetes 的HA 设置 270

集成Hadoop 组件 270

文件系统配置 272

系统配置 .274

Java 和类加载.275

CPU 275

内存和网络缓冲 .276

磁盘存储 278

检查点和状态后端 .279

安全性 280

小结 .281

第10 章 Flink 和流式应用运维 283

运行并管理流式应用 .283

保存点 284

通过命令行客户端管理应用 285

通过REST API 管理应用 .292

在容器中打包并部署应用 298

控制任务调度 302

控制任务链接 .302

定义处理槽共享组 .303

调整检查点及恢复 .305

配置检查点.306

配置状态后端 .309

配置故障恢复 . 311

监控Flink 集群和应用 313

Flink Web UI 313

指标系统 316

延迟监控 322

配置日志行为 323

小结 .324

第11 章 还有什么? 325

Flink 生态的其他组成部分 325

用于批处理的DataSet API .325

用于关系型分析的Table API 及SQL 326

用于复杂事件处理和模式匹配的FlinkCEP .326

用于图计算的Gelly .327

欢迎加入社区 327

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看