**Flink 流式计算入门:从理论到代码的完整路径**

在大数据生态中,实时数据处理已成为企业决策的核心驱动力。作为 Apache Flink 体系的基石,Flink Streaming 编程不仅代表了当前流处理技术的最高标准,也是开发者从“离线思维”转向“实时思维”的关键门槛。老汤大数据推出的《老汤大数据之 Flink Streaming 核心编程》体系课,正是为了解决这一痛点,通过从概念辨析到代码落地的全链路讲解,帮助学习者构建扎实的 Flink 编程能力。

课程开篇并未急于切入代码,而是先解决“是什么”和“为什么”的问题。在【Flink 介绍】模块中,讲师首先剖析了数据的形态,明确界定了批处理与流处理的本质区别:前者面向有界数据,后者面向无界数据流。这一基础认知的建立至关重要,因为 Flink 的核心优势正是在于其对统一批流处理架构的支持。随后,课程深入解读 Flink 的设计哲学,让学员理解为何 Flink 能在低延迟、高吞吐的场景下保持卓越表现,为后续的技术学习打下坚实的理论地基。

进入核心的【Flink 编程模型】章节,课程采用了“由浅入深、边讲边练”的教学策略。讲师利用 Netcat 工具模拟无界数据源,直观展示了 Flink 如何持续接收并处理实时数据流。在此基础上,重点讲解了 `map` 和 `flatMap` 这两个最基础且最常用的算子。`map` 用于一对一的数据转换,而 `flatMap` 则实现了“一对多”的扁平化处理,二者是构建复杂 ETL 逻辑的原子组件。为了巩固理解,课程安排了完整的本地 WordCount 实战环节,学员将在本地环境搭建 Flink 集群,亲手编写并提交第一个流式应用,见证数据从产生、处理到输出的全过程。

此外,课程还引入了“Stateful 计算框架”这一高阶概念。与传统的无状态 Web 服务不同,Flink 允许在计算过程中维护状态(State),这使得它能够实现聚合、去重、窗口计算等复杂业务场景。理解 Stateful 特性,是掌握 Flink 高级功能如 CEP、复杂事件处理的前提。

对于希望系统掌握 Flink 技术的从业者而言,这门课程提供了一个清晰的入门路径。它不满足于碎片化的知识点罗列,而是通过 QQ 群答疑等互动形式,确保学员能够真正理解编程模型背后的逻辑。无论是从事实时数仓建设、风控系统开发,还是日志实时监控,具备扎实的 Flink Streaming 编程能力都是不可或缺的竞争力。建议学习者跟随课程节奏,注重本地环境的实操练习,从而将理论转化为真正的工程技能。

课程目录

1-1 [课程答疑 QQ 群:574185645] 老汤大数据课程体系介绍 (06:21)
1-2 [课程答疑 QQ 群:574185645] 将删除 (04:35)
2-1 [课程内容] Flink Streaming 核心编程内容 (07:49)
3-1 [Flink 介绍] 数据形状 (04:10)
3-2 [Flink 介绍] 批处理 vs 流处理 (12:30)
3-3 [Flink 介绍] Flink 介绍 (09:15)
4-1 [Flink 编程模型] netcat模拟 unbounded 数据源 (07:59)
4-2 [Flink 编程模型] map 和 flatMap (13:05)
4-3 [Flink 编程模型] 本地运行 Flink WordCount (19:23)
4-4 [Flink 编程模型] Stateful 计算框架 (15:08)
4-5 [Flink 编程模型] 并行度 (22:25)
4-6 [Flink 编程模型] Scala 版本的 WordCount (08:57)
4-7 [Flink 编程模型] 补充 (03:01)
4-8 [Flink 编程模型] 单节点安装 Flink (07:45)
4-9 [Flink 编程模型] 全分布式安装 Flink (09:40)
4-10 [Flink 编程模型] 程序优化修改 (09:29)
4-11 [Flink 编程模型] 集群提交 Flink 任务 (08:00)
4-12 [Flink 编程模型] 集群中 subtask 的位置 (07:18)
4-13 [Flink 编程模型] Flink 分布式运行时环境 (07:07)
4-14 [Flink 编程模型] 数据传输策略 (09:13)
4-15 [Flink 编程模型] Flink 读写 Kafka (16:39)
4-16 [Flink 编程模型] 集群运行 Flink 读写 Kafka (15:34)
4-17 [Flink 编程模型] 配置 Task slots (11:55)
4-18 [Flink 编程模型] Operator Chain (11:42)
4-19 [Flink 编程模型] 默认情况下 task 的分配 (15:38)
4-20 [Flink 编程模型] Flink 四层图结构 (13:16)
4-21 [Flink 编程模型] Flink 编程模型小结 (09:53)
5-1 [案例驱动讲解常用 API] 案例数据源讲解 (13:37)
5-2 [案例驱动讲解常用 API] 自定义 Source (15:16)
5-3 [案例驱动讲解常用 API] map 和 filter (18:07)
5-4 [案例驱动讲解常用 API] 网格 id 计算 (12:07)
5-5 [案例驱动讲解常用 API] flatMap (13:17)
5-6 [案例驱动讲解常用 API] keyBy (11:52)
5-7 [案例驱动讲解常用 API] keyBy练习 (16:26)
5-8 [案例驱动讲解常用 API] RichFunction (17:14)
6-1 [Flink 状态管理] Flink 中的状态 (05:46)
6-2 [Flink 状态管理] Flink 中的状态种类 (10:36)
6-3 [Flink 状态管理] keyed state 之 ValueSate (21:23)
6-4 [Flink 状态管理] keyed state 之 ListSate (14:52)
6-5 [Flink 状态管理] keyed state 之 MapState (07:42)
6-6 [Flink 状态管理] keyed state 之 ReducingState (09:39)
6-7 [Flink 状态管理] keyed state 之 AggregatingState (12:37)
6-8 [Flink 状态管理] Connected Stream (14:39)
6-9 [Flink 状态管理] 使用 connect 实现关联 (22:34)
6-10 [Flink 状态管理] Managed Operator State (18:18)
6-11 [Flink 状态管理] 三种 StateBackend (12:12)
6-12 [Flink 状态管理] 怎么设置 StateBackend (07:34)
6-13 [Flink 状态管理] 简单的 checkpoint 机制 (09:27)
6-14 [Flink 状态管理] Flink checkpoint 机制 (11:03)
6-15 [Flink 状态管理] checkpoint 配置 (14:18)
6-16 [Flink 状态管理] Flink 程序重启策略 (09:35)
6-17 [Flink 状态管理] Broadcast State (24:01)
7-1 [Time And Window] timeWindow (08:15)
7-2 [Time And Window] ProcessWindowFunction (17:20)
7-3 [Time And Window] Flink 时间种类 (09:27)
7-4 [Time And Window] Event Time VS Processing Time (06:56)
7-5 [Time And Window] 模拟发送带有 Event Time 的数据 (14:35)
7-6 [Time And Window] 处理有序的事件 (11:09)
7-7 [Time And Window] 处理乱序的事件 (06:24)
7-8 [Time And Window] Event Time 处理乱序事件 (08:45)
7-9 [Time And Window] Event Time 加 WaterMark 机制 (08:46)
7-10 [Time And Window] AssignerWithPeriodicWatermarks (08:41)
7-11 [Time And Window] Watermark 定义 (09:53)
7-12 [Time And Window] Watermark 深入需求代码 (15:24)
7-13 [Time And Window] window 计算触发的条件 (18:00)
7-14 [Time And Window] watermark 加 window 处理乱序事件 (10:10)
7-15 [Time And Window] 默认丢弃迟到太多的事件 (06:35)
7-16 [Time And Window] allowedLateness 指定允许数据延迟的时间 (11:11)
7-17 [Time And Window] sideOutputLateData 收集迟到的数据 (09:27)
7-18 [Time And Window] 多并行度下的 watermark (07:50)
7-19 [Time And Window] 两种 watermark 生成机制 (06:50)
7-20 [Time And Window] Keyed vs Non-Keyed Windows (16:42)
7-21 [Time And Window] tumbling window (13:44)
7-22 [Time And Window] sliding window (05:29)
7-23 [Time And Window] KeyedProcessFunction 注册定时器 (22:01)
7-24 [Time And Window] session window (08:54)
7-25 [Time And Window] global window (09:42)
7-26 [Time And Window] Window Trigger (25:36)
7-27 [Time And Window] Window Evictor (16:13)
7-28 [Time And Window] Window Function 之 reduce (09:36)
7-29 [Time And Window] Window Function 之 aggregate (08:09)
7-30 [Time And Window] Process Window Function (07:01)
7-31 [Time And Window] Join API (11:50)
8-1 [实战之车联网实时计算] 计算赚钱最多的司机 (12:53)
8-2 [实战之车联网实时计算] 代码优化 (06:19)
8-3 [实战之车联网实时计算] window 增量计算 (09:26)
8-4 [实战之车联网实时计算] Connected Car Event Stream (06:17)
8-5 [实战之车联网实时计算] 实时对无序事件排序 (14:23)
8-6 [实战之车联网实时计算] 处理每个事件 (15:56)
8-7 [实战之车联网实时计算] 定时输出有序事件 (14:51)
8-8 [实战之车联网实时计算] 迟到太多事件的处理 (12:43)
8-9 [实战之车联网实时计算] Segment 的定义 (11:03)
8-10 [实战之车联网实时计算] 计算一个 car 的所有 StopSegment (13:24)
8-11 [实战之车联网实时计算] 数据清除策略 (10:23)
8-12 [实战之车联网实时计算] 计算 StopSegement 的值 (08:21)
8-13 [实战之车联网实时计算] GapSegment 的计算 (06:04)
9-1 [Flink On Yarn] Flink 集成 Hadoop (07:04)
9-2 [Flink On Yarn] 提交单个 Flink Job 到 Yarn 上 (07:49)
9-3 [Flink On Yarn] Fink On Yarn 配置讲解 (15:08)
9-4 [Flink On Yarn] 杀掉 Yarn Application 的另一种方式 (02:15)
9-5 [Flink On Yarn] Flink yarn-session (10:36)
9-6 [Flink On Yarn] yarn-session 的配置讲解 (09:40)
10-1 [Flink Streaming Connector] 开发环境和集群环境的准备 (06:09)
10-2 [Flink Streaming Connector] Flink Streaming Kafka 序列化一 (18:49)
10-3 [Flink Streaming Connector] Flink Streaming Kafka 序列化二 (09:50)
10-4 [Flink Streaming Connector] Flink Streaming Kafka 序列化总结 (08:49)
10-5 [Flink Streaming Connector] 推荐使用的 FlinkKafkaProducer (14:18)
10-6 [Flink Streaming Connector] Flink 集成 Kafka 0.10.x 版本 (06:33)
10-7 [Flink Streaming Connector] FlinkKafkaConsumer 消费策略 (07:57)
10-8 [Flink Streaming Connector] offset 提交策略 (04:30)
10-9 [Flink Streaming Connector] Flink Streaming 写本地文件 (11:18)
10-10 [Flink Streaming Connector] 数据分配器(BucketAssigner) (08:22)
10-11 [Flink Streaming Connector] 文件滚动策略 (18:08)
10-12 [Flink Streaming Connector] StreamFileSink 配合checkpoint (06:03)
10-13 [Flink Streaming Connector] Flink Streaming 写 HDFS 文件 (04:02)