-
内容大纲
本书由资深大数据专家精心编写,循序渐进地介绍了Flink生态系统主流的大数据开发技术。全书共7章,第1章讲解Flink的基础知识,包括Flink应用场景、主要组件、编程模型等,最后通过一个单词计数示例带领读者快速体验Flink应用程序的编写;第2、3章讲解Flink的多种运行时架构、任务调度原理、数据分区以及Flink集群的安装部署,同时包括Flink命令行操作、应用程序提交、常用Shell命令等;第4~7章讲解了Flink流式计算DataStream API、关系型计算Table&SQL API以及图计算框架Gelly等的基础知识、架构原理,同时包括常用Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、Kafka的整合操作。
本书内容翔实,实例丰富,适合Flink新手、大数据开发人员阅读,也可作为培训机构和大专院校相关专业的教学用书。 -
作者介绍
张伟洋,大数据领域资深专家,拥有多年顶尖互联网公司软件研发经验,曾在互联网旅游公司任软件研发事业部经理。目前从事大数据项目讲师工作,先后多次给各大高校举行大数据专题讲座,对Hadoop及周边大数据框架ZooKeeper、Hive、HBase、Storm、Spark、Flink等有着深入的研究。高等院校云计算与大数据专业课改教材《云计算与大数据概论》《大数据开发与应用》的主要编写者。 -
目录
第1章 初识Flink
1.1 大数据开发总体架构
1.2 什么是Flink
1.3 Flink的应用场景
1.4 流计算框架对比
1.5 Flink的主要组件
1.6 Flink编程模型
1.6.1 数据集
1.6.2 编程接口
1.6.3 程序结构
1.7 快速体验Flink程序
1.7.1 IntelliJ IDEA安装Scala插件
1.7.2 IntelliJ IDEA创建Flink项目
1.7.3 示例:批处理单词计数
1.7.4 示例:流处理单词计数
第2章 Flink运行架构及原理
2.1 Flink运行时架构
2.1.1 YARN集群架构
2.1.2 Flink Standalone架构
2.1.3 Flink On YARN的架构
2.2 Flink任务调度原理
2.2.1 任务链
2.2.2 并行度
2.2.3 共享Task Slot
2.2.4 数据流
2.2.5 执行图
2.2.6 执行计划
2.3 Flink数据分区
2.3.1 分区数量
2.3.2 分区策略
第3章 Flink安装及部署
3.1 Flink集群搭建
3.1.1 Flink本地模式搭建
3.1.2 Flink Standalone搭建
3.1.3 Flink On YARN搭建
3.2 Flink HA模式
3.2.1 Flink Standalone模式的HA架构
3.2.2 Flink Standalone模式HA集群搭建
3.2.3 Flink On YARN模式HA集群搭建
3.3 Flink命令行界面
3.4 Flink应用提交
3.5 Flink Shell的使用
第4章 Flink DataStream API
4.1 基本概念
4.2 执行模式
4.3 作业流程
4.4 程序结构
4.5 Source数据源
4.5.1 基本数据源
4.5.2 高级数据源
4.5.3 自定义数据源
4.6 Transformation数据转换
4.7 Sink数据输出
4.8 数据类型与序列化
4.9 分区策略
4.9.1 内置分区策略
4.9.2 自定义分区策略
4.10 窗口计算
4.10.1 事件时间
4.10.2 窗口分类
4.10.3 窗口函数
4.10.4 触发器
4.10.5 清除器
4.11 水印
4.11.1 计算规则
4.11.2 允许延迟与侧道输出
4.11.3 生成策略
4.12 状态管理
4.12.1 Keyed State
4.12.2 Operator State
4.13 容错机制
4.13.1 Checkpoint
4.13.2 Barrier
4.13.3 重启与故障恢复策略
4.13.4 Savepoint
4.14 案例分析:计算5秒内输入的单词数量
4.15 案例分析:统计5分钟内每个用户产生的日志数量
4.16 案例分析:统计24小时内每个用户的订单平均消费额
4.17 案例分析:计算5秒内每个信号灯通过的汽车数量
4.18 案例分析:Flink整合Kafka计算实时单词数量
4.19 案例分析:天猫双十一实时交易额统计
4.19.1 创建自定义数据源
4.19.2 计算各个分类的订单总额
4.19.3 计算全网销售总额与分类Top3
第5章 Flink Table API&SQL
5.1 基本概念
5.1.1 计划器
5.1.2 API架构
5.1.3 程序结构
5.2 动态表
5.2.1 流映射为动态表
5.2.2 连续查询
5.2.3 动态表转换为流
5.3 TableEnvironment API
5.3.1 基本概念
5.3.2 创建TableEnvironment
5.3.3 示例:简单订单统计
5.4 Table API
5.4.1 基本概念
5.4.2 示例:订单分组计数
5.4.3 示例:每小时订单分组求平均值
5.4.4 关系操作
5.5 SQL API
5.5.1 DDL操作
5.5.2 DML操作
5.5.3 DQL操作
5.5.4 窗口函数
5.5.5 窗口聚合
5.5.6 分组聚合
5.5.7 OVER聚合
5.5.8 连接查询
5.6 TopN查询
5.6.1 OVER子句
5.6.2 示例:计算产品类别销售额TopN
5.6.3 示例:搜索词热度统计
5.6.4 窗口TopN
5.7 Catalog元数据管理
5.8 Flink SQL整合Kafka
5.8.1 基本概念
5.8.2 示例:Flink SQL整合Kafka实现实时ETL
5.9 Flink SQL CLI
5.9.1 启动SQL CLI
5.9.2 执行SQL查询
5.9.3 可视化结果模式
5.10 Flink SQL整合Hive
5.10.1 整合步骤
5.10.2 Table API操作Hive
5.10.3 示例:Flink SQL整合Hive分析搜狗用户搜索日志
5.11 案例分析:Flink SQL实时单词计数
5.12 案例分析:Flink SQL实时计算5秒内用户订单总金额
5.13 案例分析:微博用户行为分析
5.13.1 离线与实时计算业务架构
5.13.2 Flume数据采集架构
5.13.3 Kafka消息队列架构
5.14 案例分析:Flink SQL智慧交通数据分析
5.14.1 项目介绍
5.14.2 数据准备
5.14.3 统计正常卡口数量
5.14.4 统计车流量排名前3的卡口号
5.14.5 统计每个卡口通过速度最快的前3辆车
5.14.6 车辆轨迹分析
第6章 Flink内核源码
6.1 流图
6.1.1 StreamGraph核心对象
6.1.2 StreamGraph生成过程
6.2 作业图
6.2.1 JobGraph的核心对象
6.2.2 JobGraph的生成过程
6.3 执行图
6.3.1 ExecutionGraph的核心对象
6.3.2 ExecutionGraph的生成过程
第7章 Gelly图计算
7.1 什么是Gelly
7.2 第一个Gelly程序
7.3 Gelly数据结构
7.4 如何使用Gelly
7.5 图操作
7.5.1 基本操作
7.5.2 属性操作
7.5.3 结构操作
7.5.4 连接操作
7.6 图常用API
7.6.1 创建图
7.6.2 图的转换
7.6.3 图的添加与移除
7.6.4 图的邻域方法
7.7 案例分析:Gelly计算社交网络中粉丝的平均年龄
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...