目的
最近使用flink比较频繁,想系统化梳理一遍flink的相关知识,把整体的知识结构都梳理一下。恰好遇到一个flink工程的交接,接手的人对相关的知识不是太感兴趣,需要一份再一步一步如何操作应对平常的需求即可。这边刚好把这份傻瓜文档分享一下,以帮助有需要的人。后续会一步一步将整体的知识结构整理到这个系列里的。flink的安装可以参考我的另一篇安装博文《flink 1.11.2 的安装记录》,目前暂时都记录的是使用flink streaming模式下的任务开发,工程结构可以从flink的git官方上获取《flink官方streaming demo》。我自己的工程结构也会后续整理到git上。
学习框架图

启动
启动集群:flink安装路径/bin/start-cluster.sh
启动|关闭单个节点taskmanager:flink安装路径/bin/taskmanager.sh start|stop
启动|关闭单个节点jobmanager:flink安装路径/bin/jobmanager.sh start|stop
启动|关闭单个历史记录服务:flink安装路径/bin/historyserver.sh start|stop
配置
访问webUI
访问flink jobmanager所在host的8081端口(默认都是这个端口)
编写任务
通常一份flink任务就是一个main入口申明你这个任务要做什么事情,然后flink自己解析命令进行分布式部署。一般的任务四个步骤就可以跑起来了,分别是env(环境)、 source(数据源)、process(转换)、sink(输出源)。太详细的建议找个课看一看,flink官方会在bilibili更新教学flink官方视频教程(当然是再b站学习了,里面不时也有大厂大牛会进行技术分享)。

这里就简单找一个工程里的例子:
1.环境申明

2.数据源申明

3.转换申明
根据不同数据流类型,获取不同的处理方式。这个直接进一层源码阅读非常清晰,或者找代码抄一抄基本的操作方式,添加逻辑就行。
4.输出源申明

打包
平常maven包怎么打包这个就怎么来。在这个工程里进入pom.Xml更新对应环境的main.Class属性就行。填写的内容是任务的main方法所在对象的全路径。

提交
打开你的web UI(master的8081端口)








异常重启



1492

被折叠的 条评论
为什么被折叠?



