本书旨在帮助读者从零开始快速掌握Flink的基本原理与核心功能。本书首先介绍了Flink的基本原理和安装部署,并对Flink中的一些核心API进行了详细分析。然后配套对应的案例分析,分别使用Java代码和Scala代码实现案例。*后通过两个项目演示了Flink在实际工作中的一些应用场景,帮助读者快速掌握Flink开发。 学习本书需要大家具备一些大数据的基础知识,比如Hadoop、Kafka、Redis、Elasticsearch等框架的基本安装和使用。本书也适合对大数据实时计算感兴趣的读者阅读。 学习本书需要大家具备一些大数据的基础知识,例如Hadoop、Kafka、Redis、Elasticsearch等框架的基本安装和使用。本书也适合对大数据实时计算感兴趣的爱好者阅读。
Flink是大数据处理领域*近冉冉升起的一颗新星,它可以基于Hadoop进行开发和使用,与Hadoop紧密结合。本书旨在帮助读者从零开始快速掌握Flink的基本原理与核心功能,并具有以下特点: 1.这是一本Flink入门级图书,力求详细而完整地描述Flink基础理论与实际操作。 2.采用Flink 1.6版本写作,案例丰富实用,做到学以致用。 3.细节与案例兼顾,深入浅出展现Flink技术精髓。 4.51CTO热门网课配套教材,可与网课结合学习,快速提升大数据开发技能。
徐葳,拥有多年一线互联网公司软件的研发经验,曾担任猎豹移动大数据技术专家、中科院大数据研究院大数据技术专家、某大学外聘大数据讲师。他主导开发海外舆情监控系统、海量数据采集平台、OLAP数据分析平台、三度关系推荐系统和PB级数据检索系统等,并进行大数据相关的内容培训。此外,他对Hadoop、Storm和Spark等大数据技术框架有深入的理解。
第 1章 Flink概述 1
1.1 Flink原理分析 1
1.2 Flink架构分析 2
1.3 Flink基本组件 3
1.4 Flink流处理(Streaming)与批处理(Batch) 4
1.5 Flink典型应用场景分析 5
1.6 流式计算框架对比 6
1.7 工作中如何选择实时计算框架 8
第 2章 Flink快速入门 9
2.1 Flink开发环境分析 9
2.1.1 开发工具推荐 9
2.1.2 Flink程序依赖配置 10
2.2 Flink程序开发步骤 11
2.3 Flink流处理(Streaming)案例开发 11
2.3.1 Java代码开发 12
2.3.2 Scala代码开发 14
2.3.3 执行程序 16
2.4 Flink批处理(Batch)案例开发 16
2.4.1 Java代码开发 16
2.4.2 Scala代码开发 18
2.4.3 执行程序 19
第3章 Flink的安装和部署 20
3.1 Flink本地模式 20
3.2 Flink集群模式 22
3.2.1 Standalone模式 23
3.2.2 Flink on Yarn模式 26
3.2.3 yarn-session.sh命令分析 30
3.2.4 Flink run命令分析 30
3.3 Flink代码生成JAR包 31
3.4 Flink HA的介绍和使用 35
3.4.1 Flink HA 35
3.4.2 Flink Standalone集群的HA安装和配置 35
3.4.3 Flink on Yarn集群HA的安装和配置 50
3.5 Flink Scala Shell 53
第4章 Flink常用API详解 56
4.1 Flink API的抽象级别分析 56
4.2 Flink DataStream的常用API 57
4.2.1 DataSource 57
4.2.2 Transformation 66
4.2.3 Sink 70
4.3 Flink DataSet的常用API分析 80
4.3.1 DataSource 80
4.3.2 Transformation 81
4.3.3 Sink 82
4.4 Flink Table API和SQL的分析及使用 82
4.4.1 Table API和SQL的基本使用 83
4.4.2 DataStream、DataSet和Table之间的转换 87
4.4.3 Table API和SQL的案例 91
4.5 Flink支持的DataType分析 97
4.6 Flink序列化分析 97
第5章 Flink高级功能的使用 99
5.1 Flink Broadcast 99
5.2 Flink Accumulator 104
5.3 Flink Broadcast和Accumulator的区别 108
5.4 Flink Distributed Cache 108
第6章 Flink State管理与恢复 112
6.1 State 112
6.1.1 Keyed State 113
6.1.2 Operator State 115
6.2 State的容错 116
6.3 CheckPoint 118
6.4 StateBackend 119
6.5 Restart Strategy 121
6.6 SavePoint 123
第7章 Flink窗口详解 125
7.1 Window 125
7.2 Window的使用 126
7.2.1 Time Window 127
7.2.2 Count Window 128
7.2.3 自定义Window 129
7.3 Window聚合分类 130
7.3.1 增量聚合 130
7.3.2 全量聚合 132
第8章 Flink Time详解 134
8.1 Time 134
8.2 Flink如何处理乱序数据 135
8.2.1 Watermark 136
8.2.2 Watermark的生成方式 137
8.3 EventTime Watermark解决乱序数据的案例详解 138
8.3.1 实现Watermark的相关代码 138
8.3.2 通过数据跟踪Watermark的时间 142
8.3.3 利用Watermark Window处理乱序数据 149
8.3.4 Late Element的处理方式 153
8.3.5 在多并行度下的Watermark应用 163
8.3.6 With Periodic Watermarks案例总结 165
第9章 Flink并行度详解 166
9.1 Flink并行度 166
9.2 TaskManager和Slot 166
9.3 并行度的设置 167
9.3.1 并行度设置之Operator Level 168
9.3.2 并行度设置之Execution Environment Level 168
9.3.3 并行度设置之Client Level 169
9.3.4 并行度设置之System Level 169
9.4 并行度案例分析 169
第 10章 Flink Kafka Connector详解 172
10.1 Kafka Connector 172
10.2 Kafka Consumer 173
10.2.1 Kafka Consumer消费策略设置 173
10.2.2 Kafka Consumer的容错 175
10.2.3 动态加载Topic 176
10.2.4 Kafka Consumer Offset自动提交 177
10.3 Kafka Producer 177
10.3.1 Kafka Producer的使用 177
10.3.2 Kafka Producer的容错 179
第 11章 Flink实战项目开发 184
11.1 实时数据清洗(实时ETL) 184
11.1.1 需求分析 184
11.1.2 项目架构设计 184
11.1.3 项目代码实现 186
11.2 实时数据报表 205
11.2.1 需求分析 205
11.2.2 项目架构设计 206
11.2.3 项目代码实现 207