作品简介

本书既讲解了Flink的入门、安装、流计算开发入门、类型和序列化系统、监控运维、安全管理配置等基础知识,又讲解了Flink的时间概念、Window的实现原理及其代码解析,Flink的容错机制原理,Flink容错的关键设计、代码实现分析,Flink Job从源码到执行整个过程的解析,Flink Job的调度策略、资源管理策略、内存管理、数据交换的关键设计和代码实现分析,Flink的RPC通信框架等深度内容。

本书适合对实时计算感兴趣的大数据开发、运维领域的从业人员阅读,此外对机器学习工程技术人员也有所帮助。

冯飞,有10余年IT研发经验,专注于大数据相关技术领域,持续跟踪研究大数据计算引擎的理论模型及其演进,深入研读Flink、Apache Beam、Spark等的源码,尤其精通Flink。从事批流AI融合的新一代数据仓库设计、研发等工作。

崔鹏云,毕业于北京邮电大学,获硕士学位,曾在MicroSoft和Teradata国外知名企业的研发中心供职9年,有15年的企业级数据仓库和在线分析技术应用实战经验,拥有国内外众多TB及PB级大数据客户实时数据处理和分析落地能力。

陈冠华,毕业于北京大学计算机软件与理论专业,获博士学位。2009~2011年在北京大学从事博士后研究工作,研究领域包括大数据内存及实时计算技术、数据仓库、数据挖掘和机器学习等,有超过15年的数据仓库和在线处理技术的学术研究与实践经验。

作品目录

  • 前言
  • 第1章 Flink入门
  • 1.1 核心特点
  • 1.2 架构
  • 1.3 Flink的未来
  • 1.4 准备工作
  • 1.5 总结
  • 第2章 Flink应用
  • 2.1 Flink应用开发
  • 2.2 API层次
  • 2.3 数据流
  • 2.4 数据流API
  • 2.5 总结
  • 第3章 核心抽象
  • 3.1 环境对象
  • 3.2 数据流元素
  • 3.3 数据转换
  • 3.4 算子
  • 3.5 函数体系
  • 3.6 数据分区
  • 3.7 连接器
  • 3.8 分布式ID
  • 3.9 总结
  • 第4章 时间与窗口
  • 4.1 时间类型
  • 4.2 窗口类型
  • 4.3 窗口原理与机制
  • 4.4 水印
  • 4.5 时间服务
  • 4.6 窗口实现
  • 4.7 总结
  • 第5章 类型与序列化
  • 5.1 DataStream类型系统
  • 5.2 SQL类型系统
  • 5.3 数据序列化
  • 5.4 总结
  • 第6章 内存管理
  • 6.1 自主内存管理
  • 6.2 内存模型
  • 6.3 内存数据结构
  • 6.4 内存管理器
  • 6.5 网络缓冲器
  • 6.6 总结
  • 第7章 状态原理
  • 7.1 状态类型
  • 7.2 状态描述
  • 7.3 广播状态
  • 7.4 状态接口
  • 7.5 状态存储
  • 7.6 状态持久化
  • 7.7 状态重分布
  • 7.8 状态过期
  • 7.9 总结
  • 第8章 作业提交
  • 8.1 提交流程
  • 8.2 Graph总览
  • 8.3 流图
  • 8.4 作业图
  • 8.5 执行图
  • 8.6 总结
  • 第9章 资源管理
  • 9.1 资源抽象
  • 9.2 资源管理器
  • 9.3 Slot管理器
  • 9.4 SlotProvider
  • 9.5 Slot选择策略
  • 9.6 Slot资源池
  • 9.7 Slot共享
  • 9.8 总结
  • 第10章 作业调度
  • 10.1 调度
  • 10.2 执行模式
  • 10.3 数据交换模式
  • 10.4 作业生命周期
  • 10.5 关键组件
  • 10.6 作业启动
  • 10.7 作业停止
  • 10.8 作业失败调度
  • 10.9 组件容错
  • 10.10 总结
  • 第11章 作业执行
  • 11.1 作业执行图
  • 11.2 核心对象
  • 11.3 Task执行
  • 11.4 总结
  • 第12章 数据交换
  • 12.1 数据传递模式
  • 12.2 关键组件
  • 12.3 数据传递
  • 12.4 数据传递过程
  • 12.5 网络通信
  • 12.6 总结
  • 第13章 应用容错
  • 13.1 容错保证语义
  • 13.2 检查点与保存点
  • 13.3 作业恢复
  • 13.4 关键组件
  • 13.5 轻量级异步分布式快照
  • 13.6 检查点执行过程
  • 13.7 检查点恢复过程
  • 13.8 端到端严格一次
  • 13.9 总结
  • 第14章 Flink SQL
  • 14.1 Apache Calcite
  • 14.2 动态表
  • 14.3 TableEnvironment
  • 14.4 Table API
  • 14.5 SQL API
  • 14.6 元数据
  • 14.7 数据访问
  • 14.8 SQL函数
  • 14.9 Planner关键抽象
  • 14.10 Blink Planner和Flink Planner对比
  • 14.11 Blink与Calcite关系
  • 14.12 Blink SQL执行过程
  • 14.13 Blink Table API执行过程
  • 14.14 Flink与Calcite的关系
  • 14.15 Flink SQL执行过程
  • 14.16 Flink Table API执行过程
  • 14.17 SQL优化
  • 14.18 Blink优化
  • 14.19 Flink优化
  • 14.20 代码生成
  • 14.21 总结
  • 第15章 运维监控
  • 15.1 监控指标
  • 15.2 指标组
  • 15.3 监控集成
  • 15.4 指标注册中心
  • 15.5 指标查询服务
  • 15.6 延迟跟踪实现原理
  • 15.7 总结
  • 第16章 RPC框架
  • 16.1 Akka简介
  • 16.2 RPC消息的类型
  • 16.3 RPC通信组件
  • 16.4 RPC交互过程
  • 16.5 总结
  • 专家寄语
  • 参考文献
展开全部