flink-streaming-platform-web系统是基于Apache Flink 封装的一个可视化的、轻量级的flink web客户端系统,用户只需在web 界面进行sql配置就能完成流计算任务。
主要功能:包含任务配置、启/停任务、告警、日志等功能,支持sql语法提示,格式化、sql语句校验。
目的:减少开发、降低成本 完全实现sql化 流计算任务。 😂
[1] 任务支持单流 、双流、 单流与维表等。
[2] 支持本地模式、yarn-per模式、STANDALONE模式。
[3] 支持catalog、hive。
[4] 支持自定义udf、连接器等,完全兼容官方连接器。
[5] 支持sql的在线开发,语法提示,格式化。
[6] 支持钉钉告警、自定义回调告警、自动拉起任务。
[7] 支持自定义Jar提交任务。
[8] 支持多版本flink版本(需要用户编译对应flink版本)。
[9] 支持自动、手动savepoint备份,并且从savepoint恢复任务。
[10] 支持批任务如:hive。
目前flink版本已经升级到1.12
这里部署flink-streaming-platform-web,并跑通kafka->flink sql -> mysql的一个样例,实时从kafka中读取json字符串,经过ETL操作,将数据汇总后写入mysql sink
– ETL
- flink-streaming-platform-web.tar.gz
flink-streaming-platform-web(20210202).tar.gz (下载地址)
- flink
flink-1.12.0-bin-scala_2.11.tgz (下载地址)
- kafka
这里使用Kafka Connect Datagen来生成模拟数据,具体操作 请参考这里
json配置文件内容如下
- 依赖的jar包
操作mysql需要的jar包(flink jdbc connector下载地址 )
flink-connector-jdbc_2.11-1.12.0.jar
mysql-connector-java-8.0.19.jar(根据使用的mysql版本来选择,各版本下载地址 )
操作kafka需要的jar包(flink kafka connector下载地址)
这里只需要下载这一个jar包即可:flink-sql-connector-kafka_2.11-1.12.0.jar
第一种方法:下载连接器Jar包后后直接放到 flink/lib/目录下就可以使用了,其缺点是:
1、该方案存在jar冲突可能,特别是连接器多了以后
2、在非yarn模式下每次新增jar需要重启flink集群服务器
第二种方法:配置每一个flink任务时,放到http的服务下填写到三方地址,例如设置内部的http repo下载源(公司内部建议放到内网的某个http服务)
启动后,访问web页面
打开页面查看 http://127.0.0.1:9084/admin/index?message=nologin
登录号:admin 密码 123456。
- 自动生成kafka实时数据
往kafka中不断写入实时数据,观察mysql中目标表中的结果。写入数据可以使用kafka-connect-datagen自动写入,json文件flink_web.source.datagen.json内容模板是:
- 执行数据生成命令: