展开全部

主编推荐语

大数据流处理实战: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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。