Apache StreamPark流处理极速开发框架
StreamX 是一个 Apache Flink 极速开发框架。项目的初衷是 —— 让 Flink 开发更简单。
StreamX 定位是 Flink|Spark 开发脚手架 + 流批一体大数据平台,项目本身采用 java、scala开发。前端使用 vuejs、antd design vue,使用 StreamX 开发,可以极大降低学习成本和开发门槛,让开发者只用关心最核心的业务。
StreamX 规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式,提供了一系列开箱即用的Connectors,标准化了配置、开发、测试、部署、监控、运维的整个过程,提供scala和java两套api,其最终目的是打造一个一站式大数据平台,流批一体的解决方案。
Features
- 开发脚手架
- 多版本Flink支持(1.11,x, 1.12.x, 1.13 )
- 一系列开箱即用的connectors
- 支持项目编译功能(maven 编译)
- 在线参数配置
- 支持
Applicaion
模式,Yarn-Per-Job
模式启动 - 快捷的日常操作(任务
启动
、停止
、savepoint
,从savepoint
恢复) - 支持火焰图
- 支持
notebook
(在线任务开发) - 项目配置和依赖版本化管理
- 支持任务备份、回滚(配置回滚)
- 在线管理依赖(maven pom)和自定义jar
- 自定义udf、连接器等支持
- Flink SQL WebIDE
- 支持catalog、hive
- 任务运行失败发送告警邮件
- 支持任务失败重启重试
- 从任务
开发
阶段到部署管理
全链路支持 - ...
项目架构如下:
组成部分
Streamx 有三部分组成,分别是streamx-core、streamx-pump 和 streamx-console
streamx-core
streamx-core 定位是一个开发时框架,关注编码开发,规范了配置文件,按照约定优于配置的方式进行开发,提供了一个开发时 RunTime Content和一系列开箱即用的Connector,扩展了DataStream相关的方法,融合了DataStream和Flink sql api,简化繁琐的操作,聚焦业务本身,提高开发效率和开发体验
streamx-pump
pump 是抽水机,水泵的意思,streamx-pump的定位是一个数据抽取的组件,类似于flinkx,基于streamx-core中提供的各种connector开发,目的是打造一个方便快捷,开箱即用的大数据实时数据抽取和迁移组件,并且集成到streamx-console中,解决实时数据源获取问题,目前在规划中
streamx-console
streamx-console 是一个综合实时数据平台,低代码(Low Code)平台,可以较好的管理Flink任务,集成了项目编译、发布、参数配置、启动、savepoint,火焰图(flame graph),Flink SQL, 监控等诸多功能于一体,大大简化了Flink任务的日常操作和维护,融合了诸多最佳实践。旧时王谢堂前燕,飞入寻常百姓家,让大公司有能力研发使用的项目,现在人人可以使用, 其最终目标是打造成一个实时数仓,流批一体的一站式大数据解决方案