展开全部

主编推荐语

针对Flink初学者,详细介绍Flink架构、原理、大数据处理机制等方面的知识,并通过实战项目来提高解决实际问题的能力。

内容简介

Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态的计算,广泛应用于大数据相关的实际业务场景中。

本书是一本从零开始讲解Flink的入门教材,学习本书需要有Java编程基础。

本书共分10章,内容包括Flink开发环境搭建、Flink架构和原理、时间和窗口、状态管理和容错机制、数据类型与序列化、DataStream API和DataSet API、Table API和SQL、Flink并行、Flink部署与应用,后以一个Flink实战项目为例,对Flink相关知识进行综合实践,其中涉及Web页面展示、WebSocket协议和Node.js服务等技术。

本书内容详尽、示例丰富,适合作为Flink初学者的参考书,也非常适合作为高等院校和培训机构大数据及相关专业的师生教学参考。

目录

  • 版权信息
  • 内容简介
  • 前言
  • 第1章 Flink环境搭建
  • 1.1 下载安装
  • 1.1.1 什么是Flink
  • 1.1.2 Flink用户
  • 1.1.3 JDK安装
  • 1.1.4 Scala安装
  • 1.1.5 Python安装
  • 1.1.6 FinalShell安装
  • 1.2 配置与开发工具
  • 1.2.1 基础配置
  • 1.2.2 IDEA开发工具
  • 1.3 编译
  • 1.3.1 Scala项目模板
  • 1.3.2 Java项目模板
  • 1.3.3 Python项目
  • 1.3.4 项目编译
  • 1.4 运行Flink应用
  • 1.4.1 单机Standalone模式
  • 1.4.2 多机Standalone模式
  • 1.4.3 On Yarn集群模式
  • 1.5 本章小结
  • 第2章 定义、架构与原理
  • 2.1 流处理的应用场景
  • 2.1.1 数据预处理场景
  • 2.1.2 预警场景
  • 2.1.3 实时数量统计场景
  • 2.1.4 数据库交互场景
  • 2.1.5 跟踪场景
  • 2.1.6 基于数据流的机器学习场景
  • 2.1.7 实时自动控制场景
  • 2.2 流处理的原理
  • 2.2.1 流数据特征
  • 2.2.2 Dataflow模型
  • 2.2.3 数据流图
  • 2.2.4 流处理操作
  • 2.2.5 窗口操作
  • 2.3 Flink架构分析
  • 2.3.1 Flink常见概念
  • 2.3.2 Flink主从架构
  • 2.3.3 任务和算子链
  • 2.4 Flink中的几个语义——Streams、State、Time、API
  • 2.4.1 Streams流
  • 2.4.2 State状态
  • 2.4.3 Time时间
  • 2.4.4 API接口
  • 2.5 Flink组件
  • 2.6 本章小结
  • 第3章 时间和窗口
  • 3.1 时间
  • 3.1.1 Flink中的时间
  • 3.1.2 时间的特性
  • 3.2 Timestamp和Watermark
  • 3.2.1 在SourceFunction中生成
  • 3.2.2 在assignTimestampsAndWatermarks中生成
  • 3.2.3 Watermarks传播机制
  • 3.3 EventTime+Watermark解决乱序数据
  • 3.3.1 无迟到的乱序数据
  • 3.3.2 有迟到的乱序数据
  • 3.4 WindowAssigner、Evictor以及Trigger
  • 3.4.1 WindowAssigner
  • 3.4.2 Trigger
  • 3.4.3 Evictor
  • 3.5 Window内部实现
  • 3.5.1 Flink Window源码分析
  • 3.5.2 Flink Window执行过程
  • 3.6 Window使用
  • 3.6.1 Time Window
  • 3.6.2 Count Window
  • 3.6.3 Session Window
  • 3.6.4 自定义Window
  • 3.7 Window聚合分类
  • 3.7.1 增量聚合
  • 3.7.2 全量聚合
  • 3.8 本章小结
  • 第4章 状态管理及容错机制
  • 4.1 什么是状态
  • 4.2 什么场景会用到状态
  • 4.3 状态的类型与使用
  • 4.3.1 Keyed State托管状态
  • 4.3.2 Operator State托管状态
  • 4.4 Checkpoint机制
  • 4.4.1 Checkpoint配置
  • 4.4.2 State Backends状态后端
  • 4.4.3 重启策略
  • 4.5 SavePoint机制
  • 4.6 本章小结
  • 第5章 数据类型与序列化
  • 5.1 Flink的数据类型
  • 5.1.1 元组类型
  • 5.1.2 Java POJOs类型
  • 5.1.3 Scala样例类
  • 5.1.4 基础类型
  • 5.1.5 普通类
  • 5.1.6 值类型
  • 5.1.7 特殊类型
  • 5.2 序列化原理
  • 5.3 Flink的序列化过程
  • 5.4 序列化的最佳实践
  • 5.5 本章小结
  • 第6章 DataStream API和DataSet API
  • 6.1 DataStream API
  • 6.1.1 DataSources数据输入
  • 6.1.2 DataSteam转换操作
  • 6.1.3 DataSinks数据输出
  • 6.2 DataSet API
  • 6.2.1 DataSources数据输入
  • 6.2.2 DataSet转换操作
  • 6.2.3 DataSinks数据输出
  • 6.3 迭代计算
  • 6.3.1 全量迭代
  • 6.3.2 增量迭代
  • 6.4 广播变量与分布式缓存
  • 6.4.1 广播变量
  • 6.4.2 分布式缓存
  • 6.5 语义注解
  • 6.5.1 Forwarded Fileds注解
  • 6.5.2 Non-Forwarded Fileds注解
  • 6.5.3 Read Fields注解
  • 6.6 本章小结
  • 第7章 Table API和SQL
  • 7.1 TableEnviroment
  • 7.1.1 开发环境构建
  • 7.1.2 TableEnvironment基本操作
  • 7.1.3 外部连接器
  • 7.1.4 时间概念
  • 7.1.5 Temporal Tables时态表
  • 7.2 WordCount
  • 7.3 Table API的操作
  • 7.3.1 获取Table
  • 7.3.2 输出Table
  • 7.3.3 查询Table
  • 7.3.4 聚合操作
  • 7.3.5 多表关联
  • 7.3.6 集合操作
  • 7.3.7 排序操作
  • 7.4 DataStream、DataSet和Table之间的转换
  • 7.4.1 DataStream to Table
  • 7.4.2 DataSet to Table
  • 7.4.3 Table to DataStream
  • 7.4.4 Table to DataSet
  • 7.5 window aggregate与non-window aggregate
  • 7.6 Flink SQL使用
  • 7.6.1 使用SQL CLI客户端
  • 7.6.2 在流上运行SQL查询
  • 7.6.3 Group Windows窗口操作
  • 7.6.4 多表关联
  • 7.6.5 集合操作
  • 7.6.6 去重操作
  • 7.6.7 Top-N操作
  • 7.6.8 数据写入
  • 7.7 自定义函数
  • 7.7.1 Scalar Function
  • 7.7.2 Table Function
  • 7.7.3 Aggregation Function
  • 7.8 本章小结
  • 第8章 并行
  • 8.1 Flink并行度
  • 8.2 TaskManager和Slot
  • 8.3 并行度的设置
  • 8.3.1 执行环境层面
  • 8.3.2 操作算子层面
  • 8.3.3 客户端层面
  • 8.3.4 系统层面
  • 8.3.5 最大并行度
  • 8.4 并行度案例分析
  • 8.5 本章小结
  • 第9章 Flink部署与应用
  • 9.1 Flink集群部署
  • 9.1.1 Standalone Cluster部署
  • 9.1.2 Yarn Cluster部署
  • 9.1.3 Kubernetes Cluster部署
  • 9.2 Flink高可用配置
  • 9.2.1 Standalone集群高可用配置
  • 9.2.2 Yarn Session集群高可用配置
  • 9.3 Flink安全管理
  • 9.3.1 认证目标
  • 9.3.2 认证配置
  • 9.3.3 SSL配置
  • 9.4 Flink集群升级
  • 9.4.1 任务重启
  • 9.4.2 状态维护
  • 9.4.3 版本升级
  • 9.5 本章小结
  • 第10章 Flink项目实战
  • 10.1 实时数据清洗(实时ETL)
  • 10.1.1 需求分析
  • 10.1.2 项目架构设计
  • 10.1.3 项目代码实现
  • 10.2 实时数据报表
  • 10.2.1 需求分析
  • 10.2.2 项目架构设计
  • 10.2.3 项目代码实现
  • 10.3 本章小结
展开全部

评分及书评

4.3
4个评分
  • 用户头像
    给这本书评了
    4.0

    学习 Flink 可以先了解流式计算引擎的原理,阅读 StormMillWheelDataflow 等论文,以及 Streaming System 这本书,然后就可以读这本书了。书中的 Demo 需要自己敲一遍,一是熟悉处理步骤,二是可以改变输入和计算,进一步理解 Flink 中的概念。本书内容简单,适合入门。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      很好的入门书籍,适合新入门的小白。在介绍 flink 的概念方面,图文并茂,强烈推荐!不足之处是 flink 项目实战过于简单,无法让学习者在实践中学习与成长。SQL 篇的介绍不如 Datastream 篇那么循序渐进,很多需要介绍的概念需要读者自己去书外寻找。

        转发
        评论

      出版方

      清华大学出版社

      清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。