![]()
内容推荐 本书从实践的角度出发,介绍了Flink实时大数据处理框架开发的技术知识,包括实时处理系统的相关概念、开发方法、分布式计算的体系结构,以及面向事件驱动的编程技术。书中详细探讨了Flink的流式处理和批处理融合的能力,以及它在大规模数据流处理中的优势,并通过一个具体的实例介绍大数据实时处理系统的开发方法和开发过程。此外,本书还介绍了实时数据仓库的设计与实现,包括数据抽取、数据转换、数据存储和数据可视化等方面的内容,以帮助读者构建强大而可扩展的实时数据处理系统。除第10章外,其余各章配有习题,以指导读者深入地进行学习。 本书既可作为高等学校计算机软件技术课程的教材,也可作为大数据开发人员的技术参考书。 目录 前言 第1章 Apache Flink概述 1.1 Flink是什么 1.1.1 Flink的起源 1.1.2 Flink的发展过程和主要版本 1.1.3 Flink的定义 1.1.4 编程语言的选择 1.2 Flink层次架构 1.2.1 架构设计 1.2.2 API和Libraries层 1.2.3 Runtime核心层 1.2.4 物理部署层 1.3 大数据处理架构的发展 1.3.1 Lambda架构 1.3.2 Kappa架构 1.3.3 流处理框架的发展 1.4 Flink应用场景 1.4.1 事件驱动型应用 1.4.2 数据分析应用 1.4.3 数据管道应用 1.4.4 行业应用 1.5 Flink生态系统和社区 1.5.1 Flink的生态系统和相关工具 1.5.2 Flink的社区和贡献者 1.6 Flink与其他大数据框架的关系 1.6.1 Flink与Hadoop 1.6.2 Flink与Hive 1.6.3 Flink与Spark Streaming 1.6.4 Flink与Storm 1.7 习题 第2章 Scala语言 2.1 Scala语言概述 2.1.1 Scala简介 2.1.2 开发环境配置 2.1.3 创建项目 2.2 Scala语言入门 2.2.1 类型体系结构 2.2.2 变量的定义与使用 2.2.3 字面量与插值表达式 2.2.4 运算符 2.2.5 流程控制语句 2.3 集合 2.3.1 集合概述 2.3.2 Array和ArrayBuffer 2.3.3 Tuple 2.3.4 List和ListBuffer 2.3.5 Set 2.3.6 Map 2.3.7 集合操作符号 2.4 函数式编程 2.4.1 函数的定义与使用 2.4.2 匿名函数 2.4.3 高阶函数 2.4.4 柯里化与闭包 2.5 面向对象编程 2.5.1 类与对象 2.5.2 构造器 2.5.3 继承 2.5.4 伴生类与伴生对象 2.5.5 多态 2.5.6 泛型 2.5.7 隐式转换 2.6 模式匹配 2.6.1 基本使用 2.6.2 条件守卫 2.6.3 常用匹配 2.6.4 样例类 2.7 习题 第3章 环境搭建和应用部署 3.1 Flink开发环境搭建 3.1.1 CentOS环境准备 3.1.2 项目初始化 3.1.3 项目结构与依赖 3.2 Flink词频统计 3.2.1 批处理方式 3.2.2 流处理方式 3.2.3 两种方式对比 3.2.4 向集群提交作业 3.3 Flink集群部署 3.3.1 Flink集群核心组件 3.3.2 部署模式 3.3.3 Standalone模式 3.3.4 YARN模式 3.4 YARN模式的部署与应用提交 3.4.1 环境准备 3.4.2 会话模式 3.4.3 单作业模式 3.4.4 应用模式 3.5 习题 第4章 Flink流处理架构与原理 4.1 流处理模型与原理 4.1.1 数据流的概念 4.1.2 流处理和批处理 4.1.3 流处理的原理 4.1.4 流处理的模型 4.1.5 流处理的优化策略 4.2 Flink流处理架构 4.2.1 Flink的数据流模型 4.2.2 算子 4.2.3 Flink的状态管理 4.2.4 Flink的容错机制 4.2.5 Flink在流计算中的优化 4.3 Flink集群架构 4.3.1 集群组件的协作 4.3.2 Task和算子链 4.3.3 Task Slots和资源管理 4.4 习题 第5章 流处理API 5.1 基本使用 5.1.1 DataStream是什么 5.1.2 基础程序 5.1.3 并行度的设置 5.2 DataStream数据源 5.2.1 内置Data Source 5.2.2 自定义 Data Source 5.3 DataStream转换算子 5.3.1 数据流转换 5.3.2 RichFunction 5.3.3 物理分区 5.3.4 算子链 5.3.5 资源组 5.4 DataStream Sink 5.4.1 Data Sinks 5.4.2 自定义Sink 5.5 用户行为实时分析 5.6 习题 第6章 时间和窗口 6.1 时间与窗口的概念 6.1.1 Flink中的时间 6.1.2 窗口 6.1.3 水位线 6.2 窗口的基本使用 6.2.1 窗口分配器 6.2.2 内置窗口分配器 6.2.3 窗口触发器 6.2.4 内置触发器 6.3 窗口函数 6.3.1 ReduceFunction 6.3.2 AggregateFunction 6.3.3 ProcessWindowFunction 6.3.4 增量聚合的ProcessWindowFunction 6.4 习题 第7章 处理函数与状态管理 7.1 处理函数 7.1.1 ProcessFunction 7.1.2 KeyedProcessFunction 7.1.3 定时器 7.2 多流操作 7.2.1 Union 7.2.2 Connect 7.2.3 Window Join 7.2.4 Interval Join 7.2.5 侧输出流 7.2.6 处理迟到数据 7.3 状态管理 7.3.1 有状态的流处理 7.3.2 键控状态 7.3.3 算子状态 7.4 状态持久化 7.4.1 Checkpoint 7.4.2 StateBackend 7.4.3 Savepoint 7.5 习题 第8章 Table API和SQL API 8.1 Table API和SQL API概述 8.1.1 程序基本结构 8.1.2 TableEnvironment创建 8.1.3 创建Table 8.1.4 Table查询 |