本书除了提供了丰富的上机实践操作和范例程序详细讲解之外,本书作者还为和使用本书的读者提供了搭建好的Hadoop和Flink大数据发和学习环境。读者既可以参照本书的讲解自行搭建Hadoop和Flink环境,也可直使用作者提供的始和学习环境,快速始大数据和Flink的学习。 本书具有以下几个特: (1) 面向零基础读者,知识深浅适当,代码完整易懂。 (2) 内容全面系统,包括架构原理、发环境及程序部署、流和批计算等,并特别包含了第7章“基于Flink构建批流一体数仓”和第8章“基于Flink和数据湖构建实时数仓”内容。
售 价:¥
纸质售价:¥151.10购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权页
作者简介
内容简介
前言
目录
第1章 Flink架构与集群安装
1.1 Flink简介
1.1.1 Flink发展历程
1.1.2 Flink特性
1.2 Flink应用场景
1.2.1 事件驱动应用程序
1.2.2 数据分析应用程序
1.2.3 数据管道应用程序
1.3 Flink体系架构
1.3.1 Flink系统架构
1.3.2 Flink运行时架构
1.3.3 Flink资源管理
1.3.4 Flink作业调度
1.3.5 Flink故障恢复
1.3.6 Flink程序执行模式
1.4 Flink集群安装
1.4.1 Flink独立集群安装和测试
1.4.2 Flink完全分布式集群安装
1.4.3 Flink常用命令
第2章 Flink开发环境准备
2.1 安装和配置
2.1.1 安装和配置Maven
2.1.2 修改Maven本地仓库默认位置
2.1.3 创建初始模板项目
2.1.4 构建打包项目
2.2 使用IntelliJ IDEA+Maven开发Flink项目
2.2.1 在IntelliJ IDEA中创建Flink项目
2.2.2 设置项目基本依赖
2.2.3 用于构建具有依赖项的JAR的模板
2.2.4 编写批处理代码并测试执行
2.2.5 项目打包并提交Flink集群执行
2.3 Flink相关概念
2.3.1 Flink数据流
2.3.2 Flink分层API
第3章 开发Flink实时数据处理程序
3.1 Flink流处理程序编程模型
3.1.1 流数据类型
3.1.2 流应用程序实现
3.1.3 流应用程序剖析
3.2 Flink支持的数据源
3.2.1 基于Socket的数据源
3.2.2 基于文件的数据源
3.2.3 基于集合的数据源
3.2.4 自定义数据源
3.3 Flink数据转换
3.3.1 map转换
3.3.2 flatMap转换
3.3.3 filter转换
3.3.4 keyBy转换
3.3.5 reduce转换
3.3.6 聚合转换
3.3.7 union转换
3.3.8 connect转换
3.3.9 coMap及coFlatMap转换
3.3.10 iterate转换
3.3.11 project转换
3.4 Flink流数据分区
3.4.1 流数据分发模式
3.4.2 数据分区方法
3.4.3 数据分区示例
3.4.4 理解操作符链
3.5 Flink数据接收器
3.5.1 内置数据接收器
3.5.2 使用流文件连接器
3.5.3 自定义数据接收器
3.6 时间和水印概念
3.6.1 时间概念
3.6.2 事件时间和水印
3.6.3 水印策略
3.6.4 处理空闲数据源
3.6.5 编写水印生成器
3.6.6 内置水印生成器
3.6.7 分配时间戳和水印示例
3.7 窗口操作
3.7.1 理解Flink窗口概念
3.7.2 窗口分配器
3.7.3 窗口函数
3.7.4 触发器
3.7.5 清除器
3.7.6 处理迟到数据
3.7.7 处理窗口结果
3.7.8 窗口连接
3.8 低级操作
3.8.1 ProcessFunction
3.8.2 KeyedProcessFunction示例
3.8.3 案例:服务器故障检测报警程序
3.9 状态和容错
3.9.1 状态运算
3.9.2 状态的类型
3.9.3 使用托管的Keyed State
3.9.4 使用托管Operator State
3.9.5 广播状态
3.9.6 状态后端
3.9.7 检查点机制
3.9.8 状态快照
3.10 侧输出流
3.10.1 什么是侧输出流
3.10.2 侧输出流应用示例
3.11 Flink流连接器
3.11.1 Kafka连接器
3.11.2 JDBC连接器
3.12 其他
3.12.1 在应用程序中使用日志
3.12.2 使用ParameterTool
3.12.3 命名大型TupleX类型
3.13 Flink流处理案例
3.13.1 处理IoT事件流
3.13.2 运输公司车辆超速实时监测
第4章 开发Flink批数据处理程序
4.1 Flink批处理程序编程模型
4.1.1 批应用程序实现
4.1.2 批应用程序剖析
4.2 数据源
4.2.1 基于文件的数据源
4.2.2 基于集合的数据源
4.2.3 通用的数据源
4.2.4 压缩文件
4.3 数据转换
4.3.1 map转换
4.3.2 flatMap转换
4.3.3 mapPartition转换
4.3.4 filter转换
4.3.5 reduce转换
4.3.6 在分组数据集上的reduce转换
4.3.7 在分组数据集上的GroupReduce转换
4.3.8 在分组数据集上的GroupCombine转换
4.3.9 在分组元组数据集上执行聚合
4.3.10 在分组元组数据集上执行minBy转换
4.3.11 在分组元组数据集上执行maxBy转换
4.3.12 在全部元组数据集上执行聚合操作
4.3.13 distinct转换
4.3.14 join连接转换
4.3.15 union转换
4.3.16 project转换
4.3.17 first-n转换
4.4 数据接收器
4.4.1 将计算结果保存到文本文件
4.4.2 将计算结果保存到JDBC
4.4.3 标准DataSink方法
4.4.4 本地排序输出
4.5 广播变量
4.6 分布式缓存
4.7 参数传递
4.7.1 通过构造函数传参
4.7.2 通过withParameters(Configuration)传参
4.7.3 通过ExecutionConfig传递全局参数
4.8 数据集中的拉链操作
4.8.1 密集索引
4.8.2 唯一索引
4.9 Flink批处理示例
4.9.1 分析豆瓣热门电影数据集——Scala实现
4.9.2 分析豆瓣热门电影数据集——Java实现
第5章 使用Table API进行数据处理
5.1 依赖
5.2 Table API与SQL编程模式
5.2.1 TableEnvironment
5.2.2 Table API与SQL程序的结构
5.2.3 在Catalog中创建表
5.2.4 查询表
5.2.5 向下游发送表
5.2.6 翻译并执行查询
5.3 Table API
5.3.1 关系运算
5.3.2 窗口运算
5.3.3 基于行的操作
5.4 Table API与DataStream API集成
5.4.1 依赖
5.4.2 在DataStream和Table之间转换
5.4.3 处理insert-only流
5.4.4 处理变更日志流
5.5 Table API实时流处理案例
5.5.1 传感器温度实时统计
5.5.2 车辆超速实时监测
5.5.3 电商用户行为实时分析
第6章 Flink on YARN
6.1 Flink on YARN session
6.1.1 下载Flink集成Hadoop依赖包
6.1.2 运行Flink on YARN session
6.1.3 提交Flink作业
6.1.4 停止Flink on YARN session
6.2 Flink on YARN支持的部署模式
6.2.1 Application模式
6.2.2 Per-Job集群模式
6.2.3 session模式
第7章 基于Flink构建流批一体数仓
7.1 Flink集成Hive数仓
7.1.1 Flink集成Hive的方式
7.1.2 Flink集成Hive的步骤
7.1.3 Flink连接Hive模板代码
7.2 批流一体数仓构建实例
7.2.1 数据集说明
7.2.2 创建Flink项目
7.2.3 创建执行环境
7.2.4 注册HiveCatalog
7.2.5 创建Kafka流表
7.2.6 创建Hive表
7.2.7 流写Hive表
7.2.8 动态读取Hive流表
7.2.9 完整示例代码
7.2.10 执行步骤
7.3 纯SQL构建批流一体数仓
7.3.1 使用Flink SQL客户端
7.3.2 集成Flink SQL CLI和Hive
7.3.3 注册HiveCatalog
7.3.4 使用SQL Client提交作业
7.3.5 构建批流一体数仓完整过程
第8章 基于Flink和Iceberg数据湖构建实时数仓
8.1 现代数据湖概述
8.1.1 什么是数据湖
8.1.2 数据湖架构
8.1.3 开源数据湖框架
8.2 基于Flink+Iceberg构建企业数据湖
8.2.1 Apache Iceberg的优势
8.2.2 Apache Iceberg经典业务场景
8.2.3 应用Apache Iceberg的准备工作
8.2.4 创建和使用Catalog
8.2.5 Iceberg DDL命令
8.2.6 Iceberg SQL查询
8.2.7 Iceberg SQL写入
8.2.8 使用DataStream读取
8.2.9 使用DataStream写入
8.2.10 重写文件操作
8.2.11 未来改进
8.3 基于Flink+Iceberg构建准实时数仓
8.3.1 实时数仓构建
8.3.2 执行OLAP联机分析
图书推荐
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜