计算机
类型
可以朗读
语音朗读
305千字
字数
2021-03-01
发行日期
展开全部
主编推荐语
大数据流处理实战:Flink及应用案例
内容简介
本书围绕大数据流处理领域,介绍Flink DataStream API、时间和窗口、状态和检查点、Table API和SQL等知识。本书以实践为导向,使用大量真实业务场景案例来演示如何基于Flink进行流处理。本书主要面向对大数据领域感兴趣的本科生、研究生,想转行到大数据开发行业的在职人员,或有一定大数据开发经验的相关从业人员。读者最好有一定的Java或Scala编程基础,掌握计算机领域的常见技术概念。
目录
- 版权信息
- 内容提要
- 序
- 前言
- 第1章 大数据技术概述
- 1.1 什么是大数据
- 1.1.1 大数据的5个“V”
- 1.1.2 大数据分而治之
- 1.2 从批处理到流处理
- 1.2.1 数据与数据流
- 1.2.2 批处理与流处理
- 1.2.3 为什么需要一个优秀的流处理框架
- 1.3 代表性大数据技术
- 1.3.1 Hadoop
- 1.3.2 Spark
- 1.3.3 Apache Kafka
- 1.3.4 Flink
- 1.4 从Lambda到Kappa:大数据处理平台的演进
- 1.4.1 Lambda架构
- 1.4.2 Kappa架构
- 1.5 流处理基础概念
- 1.5.1 延迟和吞吐
- 1.5.2 窗口与时间
- 1.5.3 状态与检查点
- 1.5.4 数据一致性保障
- 1.6 编程语言的选择
- 1.6.1 Java和Scala
- 1.6.2 Python
- 1.6.3 SQL
- 1.7 案例实战使用Kafka构建文本数据流
- 1.7.1 Kafka和消息队列相关背景知识
- 1.7.2 使用Kafka构建一个文本数据流
- 本章小结
- 第2章 大数据必备编程知识
- 2.1 继承和多态
- 2.1.1 继承、类和接口
- 2.1.2 重写与重载
- 2.1.3 继承和多态小结
- 2.2 泛型
- 2.2.1 Java中的泛型
- 2.2.2 Scala中的泛型
- 2.2.3 泛型小结
- 2.3 函数式编程
- 2.3.1 函数式编程思想简介
- 2.3.2 Lambda表达式的内部结构
- 2.3.3 函数式接口
- 2.3.4 Java Stream API
- 2.3.5 函数式编程小结
- 2.4 案例实战Flink开发环境搭建
- 2.4.1 准备所需软件
- 2.4.2 下载并安装Flink
- 2.4.3 创建Flink工程
- 2.4.4 调试和运行Flink程序
- 2.4.5 运行程序
- 本章小结
- 第3章 Flink的设计与运行原理
- 3.1 Flink数据流图简介
- 3.1.1 Flink程序和数据流图
- 3.1.2 从逻辑视图转化为物理执行图
- 3.1.3 数据交换策略
- 3.2 Flink分布式架构与核心组件
- 3.2.1 Flink作业提交过程
- 3.2.2 Flink核心组件
- 3.2.3 Flink组件栈
- 3.3 任务执行与资源划分
- 3.3.1 再谈逻辑视图到物理执行图
- 3.3.2 任务、算子子任务与算子链
- 3.3.3 Slot与计算资源
- 3.4 实验WordCount程序迭代和完善
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第4章 DataStream API的介绍和使用
- 4.1 Flink程序的骨架结构
- 4.1.1 设置执行环境
- 4.1.2 读取数据源
- 4.1.3 进行转换操作
- 4.1.4 结果输出
- 4.1.5 执行
- 4.2 常见Transformation的使用方法
- 4.2.1 单数据流基本转换
- 4.2.2 基于Key的分组转换
- 4.2.3 多数据流转换
- 4.2.4 并行度与数据重分布
- 4.3 数据类型和序列化
- 4.3.1 Flink支持的数据类型
- 4.3.2 TypeInformation
- 4.3.3 注册类
- 4.3.4 Avro、Kryo、Thrift和Protobuf
- 4.3.5 数据类型的选择
- 4.4 用户自定义函数
- 4.4.1 接口
- 4.4.2 Lambda表达式
- 4.4.3 Rich函数类
- 4.5 实验股票价格数据流处理
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第5章 时间和窗口
- 5.1 Flink的时间语义
- 5.1.1 Flink的3种时间语义
- 5.1.2 设置时间语义
- 5.1.3 Event Time和Watermark
- 5.1.4 分布式环境下Watermark的传播
- 5.1.5 设置时间戳及生成Watermark
- 5.1.6 平衡延迟和准确性
- 5.2 ProcessFunction系列函数
- 5.2.1 Timer的使用方法
- 5.2.2 侧输出
- 5.2.3 在两个数据流上使用ProcessFunction
- 5.3 窗口算子的使用
- 5.3.1 窗口程序的骨架结构
- 5.3.2 内置的3种窗口划分方法
- 5.3.3 窗口处理函数
- 5.3.4 拓展和自定义窗口
- 5.4 双流连接
- 5.4.1 Window Join
- 5.4.2 Interval Join
- 5.5 处理迟到数据
- 5.5.1 将迟到数据发送到另外一个数据流
- 5.5.2 更新计算结果
- 5.6 实验股票价格数据进阶分析
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第6章 状态和检查点
- 6.1 实现有状态的计算
- 6.1.1 为什么要管理状态
- 6.1.2 Flink中几种常用的状态
- 6.1.3 横向扩展问题
- 6.1.4 Keyed State的使用方法
- 6.1.5 Operator List State的使用方法
- 6.1.6 BroadcastState的使用方法
- 6.2 Checkpoint机制的原理及配置方法
- 6.2.1 Flink分布式快照流程
- 6.2.2 分布式快照性能优化方案
- 6.2.3 State Backend
- 6.2.4 Checkpoint相关配置
- 6.2.5 重启恢复流程
- 6.3 Savepoint机制的原理及使用方法
- 6.3.1 Savepoint机制与Checkpoint机制的区别
- 6.3.2 Savepoint的使用方法
- 6.3.3 读/写Savepoint中的数据
- 6.3.4 Queryable State和State Processor API
- 6.4 实验电商平台用户行为分析
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第7章 Flink连接器
- 7.1 Flink端到端的Exactly-Once保障
- 7.1.1 故障恢复与一致性保障
- 7.1.2 幂等写
- 7.1.3 事务写
- 7.2 自定义Source和Sink
- 7.2.1 Flink 1.11之前的Source
- 7.2.2 Flink 1.11之后的Source
- 7.2.3 自定义Sink
- 7.3 Flink中常用的Connector
- 7.3.1 内置I/O接口
- 7.3.2 Flink Kafka Connector
- 7.4 实验读取并输出股票价格数据流
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第8章 Table API & SQL的介绍和使用
- 8.1 Table API & SQL综述
- 8.1.1 Table API & SQL程序的骨架结构
- 8.1.2 创建TableEnvironment
- 8.1.3 获取表
- 8.1.4 在表上执行语句
- 8.1.5 将表结果输出
- 8.1.6 执行作业
- 8.1.7 获取表的具体方式
- 8.2 动态表和持续查询
- 8.2.1 动态表和持续查询
- 8.2.2 流处理的限制
- 8.2.3 状态过期时间
- 8.3 时间和窗口
- 8.3.1 时间属性
- 8.3.2 窗口聚合
- 8.4 Join
- 8.4.1 时间窗口Join
- 8.4.2 临时表Join
- 8.4.3 传统意义上的Join
- 8.5 SQL DDL
- 8.5.1 注册和获取表
- 8.5.2 USE和SHOW语句
- 8.5.3 CREATE、DROP、ALTER语句
- 8.5.4 INSERT语句
- 8.6 系统内置函数
- 8.6.1 标量函数
- 8.6.2 聚合函数
- 8.6.3 时间单位
- 8.7 用户自定义函数
- 8.7.1 注册函数
- 8.7.2 标量函数
- 8.7.3 表函数
- 8.7.4 聚合函数
- 8.8 实验使用Flink SQL处理IoT数据
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 第9章 Flink的部署和配置
- 9.1 Flink集群部署模式
- 9.1.1 Standalone集群
- 9.1.2 Hadoop YARN集群
- 9.1.3 Kubernetes集群
- 9.2 配置文件
- 9.2.1 Java和类加载
- 9.2.2 并行度与槽位划分
- 9.2.3 内存
- 9.2.4 磁盘
- 9.3 算子链与槽位共享
- 9.3.1 设置算子链
- 9.3.2 设置槽位共享
- 9.4 命令行工具
- 9.4.1 提交作业
- 9.4.2 管理作业
- 9.5 与Hadoop集成
- 9.5.1 添加Hadoop Classpath
- 9.5.2 将Hadoop依赖包添加到lib目录中
- 9.5.3 本地调试
- 9.6 实验作业编码、打包与提交
- 一、实验目的
- 二、实验内容
- 三、实验要求
- 四、实验报告
- 本章小结
- 参考文献
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。