建议使用java写,已经有了一个配套的机器学习库 Alink https://github.com/alibaba/Alink
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/ 中文官方文档
https://ci.apache.org/projects/flink/flink-docs-release-1.11/api/java/ API文档
https://ververica.cn/developers-resources flink中文社区
https://github.com/flink-china/flink-training-course flink教程(必看)
http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/ flink教程(强推)
学习的路径
- 用docker搭建环境
- 用maven生成工程
- 学习用python推送消息至kafka,再用flink消费。(虽然也可以在flink中模拟生产者,但建议直接结合业务框架进行学习开发)
- 学习单个 Source,并进行数据预处理
- 设置处理时间为Process time。【event time更常用,但需要先了解整体流程再改为event time】
- 学习keyBy和window,进行聚合
- 使用sink输出到文件,输出格式用 json,包使用fastjson
- 学习旁路输出。【复制流,可以从Source中直接复制多份,同步进行不同的统计】