「精华」Flink 入门第一步-从环境准备到运行 WordCount
本文是 Flink 学习路线基础入门的详细任务指南。目标是帮助初学者在1-2周内建立对 Flink 的基本认知,完成从环境搭建到运行第一个程序的全过程。
好的!我们现在开始执行您的学习计划。根据我们之前制定的路线,您目前处于阶段一:基础入门。
# 学习任务(预计耗时:1-2 周)
# 📋 当前任务清单
核心目标:建立对 Flink 的基本认知,搭建开发环境,运行第一个 Flink 程序。
官网:https://flink.apache.org/ (opens new window)
# 🎯 具体执行步骤:
# 1. 环境准备(第 1-2 天)
- [X] 安装 JDK 8 或 11(推荐 OpenJDK 11)
- [X] 安装 IntelliJ IDEA(社区版即可)
- [X] 安装 Maven 3.6+
- [X] 验证环境:
java -version,mvn -version
# 2. 创建第一个 Flink 项目(第 3-4 天)
- [ ] 在 IDEA 中创建 Maven 项目
- [ ] 在
pom.xml中添加 Flink 依赖:
<properties>
<flink.version>1.17.0</flink.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients</artifactId>
<version>${flink.version}</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 3. 编写并运行基础 WordCount(第 5-7 天)
- [ ] 实现批处理版本的 WordCount(处理文本文件)
- [ ] 实现流处理版本的 WordCount(处理 Socket 实时数据)
- [ ] 对比理解批流差异
代码示例起点:
// 批处理WordCount
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<String> text = env.readTextFile("path/to/file");
DataSet<Tuple2<String, Integer>> counts = text.flatMap(...).groupBy(0).sum(1);
counts.print();
1
2
3
4
5
2
3
4
5
# 4. 核心概念学习(第 8-14 天)
- [ ] 阅读官方文档"Concepts"部分
- [ ] 理解 DataStream API 的 Source→Transformation→Sink 数据流
- [ ] 学习事件时间(Event Time) 和处理时间(Processing Time) 的区别
- [ ] 了解水位线(Watermark)的基本概念(先建立直观认识)
# 📚 学习资源推荐:
- 官方文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/ (opens new window)
- 重点阅读:"DataStream API" → "Concepts" → "Time"
# 🎯 验收标准(完成后回复我):
- [ ] 能在本地成功运行批处理和流处理的 WordCount 示例
- [ ] 能清晰解释批处理与流处理的核心区别
- [ ] 能说出事件时间 vs 处理时间的应用场景
- [ ] 遇到至少 3 个环境或代码问题并成功解决(记录问题与解决方案)
# 💡 思考题(P7 级别需要思考):
- 为什么 Flink 认为"批是流的特例"?这种设计理念有什么优势?
- 如果数据有乱序,使用处理时间会有什么问题?
完成以上所有任务后,请回复我"阶段一完成",我会为您制定阶段二的学习计划。
每次回复格式建议:
进度汇报:
- 已完成:[具体内容]
- 遇到的问题及解决方案:[描述]
- 下一步准备:[您的计划]
1
2
3
4
2
3
4
现在请开始执行第一步:环境准备。有任何问题随时问我!
# 后记
可供参考的生成这篇文章的 prompt 如下:
按照你这个体系以及学习计划告知我下一步做什么,以后每次我完成之后都要告知我下一步做什么。
1
# 参考
https://yuanbao.tencent.com/chat/naQivTmsDa/b7ed31e1-64e2-491b-a759-da3af89bf7ba (opens new window)
编辑 (opens new window)
上次更新: 2025/10/27, 10:34:38