通过本篇文章,帮助你通过使用Maven 快速实现官网demo.
环境
- 操作系统: mac
- java版本:1.8
- Flink版本:1.7.2
- scala版本:2.11
- maven 版本:Apache Maven 3.5.2
描述
输入为连续的单词,每5s对30s内的单词进行计数并输出。
使用Maven 创建项目
1 | mvn archetype:generate \ |
运行成功之后会再当前目录下生成一个名为 Flink-learning-in-action的目录。
目录结构
1 | $ tree Flink-learning-in-action |
代码思想
- 获取运行环境
- 获取输入源 (socketTextStream)
- 对输入源进行算子操作
- flatMap (拆分成单词,并给个默认值)
- keyby分组
- timeWindow 划分时间窗口
- reduce 对每一个窗口计算相同单词出现的次数
- print 输出。
部分代码
1 | public class SocketWindowCount { |
运行
1 打开终端执行
1 | nc -l 9000 |
2 运行代码。
结果:
![[title]](/2019/06/11/Flink/Flink-learning-in-action-1/image-20190612180013464.png)