StreamPark 社区的小伙伴们大家好:今天我们很高兴地宣布 Apache StreamPark(Incubating) 2.0.0 正式发布!欢迎大家下载使用。
这是 StreamPark 加入 Apache 孵化器以来发布的第一个版本, 也是一个重大功能更新的版本, 距离上次发版长达半年之久。在这半年的时间里, 我们开发了很多非常实用的新功能, 也经历了社区小伙伴的数次催更和发版的合规整改, 终于和大家见面了, 这是一个诚意满满的, 值得期待的版本。有超过100 位 Contributor 贡献了超过 700 个 Pull Request, 带来了诸多的新特性和改进修复, 感谢每一位贡献者的努力。
在 2.0.0 版本中, 我们完成了 Apache 项目的合规要求。此次发版投票跨越 3 个月,经过社区和 AFS 孵化器导师们长达 7 轮的投票,每次投票被打回我们都认真整改,由衷感受到 ASF 对项目的严苛要求,对 License (是一种具有法律性质的合同或指导,目的在于规范受著作权保护的软件的使用或散布行为) 合规的高度重视,终于在第 7 轮投票中通过了本次发布。这意味着 2.0.0 版本 License 合规最大程度的得到保证,可以被更多企业更大范围的放心使用
本次重写了整个前端模块, 更加专业和美观, 构建和启动速度和历史版本比提升了 5~10 倍。对 Flink 做了更好的支持, 支持最新的 Flink 1.16。部署 Flink 作业 on Kubernetes 到达生产可用级别, 另外在实用性和易用性上做了大量改进, 修复了诸多历史 Bug和安全漏洞, 建议所有人升级使用。
Github: https://github.com/apache/streampark
下载: https://streampark.apache.org/download
欢迎使用, 关注, star, fork ~
安装使用说明
Apache StreamPark(Incubating) 提供了两个安装包, 在 scala 版本上有所不同, 如下:
-
apache-streampark_2.11-2.0.0-incubating-bin.tar.gz
-
apache-streampark_2.12-2.0.0-incubating-bin.tar.gz
2.11 和 2.12 即为 scala 的版本, 这里 scala 版本与支持 Flink 的 scala 版本一致, 如果 Flink 版本是 1.15 及以上, 那么只能使用 scala 2.12 版本的 StreamPark, 因为 Flink 1.15+ 只支持 scala 2.12, 1.15 以下的版本则 scala 2.11 和 2.12 都支持, 总之需要下载与目标 Flink 的 scala 版本对应的 StreamPark 安装包。
新特性解读
全新的前端
StreamPark 历史版本的前端模块是基于 Vue2 框架开发的, 不少页面代码量过多, 页面和组件复用率低, 在可读性和维护性上都带来了不小的挑战, 本次基于 Vue3 重写了整个前端部分, 组件划分清晰, 可复用性更高, 很好的解决了以上问题。升级 Vue3 之后模块按需编译按需导入的, 前端体积比之前更小, 编译、启动和渲染等速度更快。
本次支持了 i18n, 支持中/英切换, 此外反馈较多的关于异常信息的提示也做了改进: 之前作业失败等异常信息只记录到了后台日志, 并未在前端显示给用户, 这会给排查问题带来不便, 本次改进了这部分, 相关信息直观的呈现给用户, 方便用户快速分析和定位问题。
在美观度上, 进一步改进了暗黑模式, 优化了非常多的细节, 普遍反馈本次页面更加美观和专业。
K8S 能力更稳定
本次在部署 Flink on Kubernetes 上, 修复了诸多历史 Bug, 支持了查看 Kubernetes 部署模式下的实时日志, 重构了作业状态获取这部分的实现, 在状态获取这部分引入了基于读取 historyserver 归档文件来获取作业状态的保底策略, 需要特别指出的是 StreamPark 中关于 Flink on Kubernetes 的实现并非基于 Flink-kubernetes-operator。
在作业部署提交、状态获取等各个方面都做了大量的测试, 整体稳定性和可用性经过企业大量作业的验证, 达到生产可用级别。
更好的 Flink 支持
在 StreamPark 2.0.0 版本中, 支持了最新的 Flink 1.16, 到此 Flink 1.12.x 至 1.16 都已经做了完整的支持, 并且本次对适配 Flink 做了改进, 使得适配一个新版本的 Flink 更加简单。
此外对 Flink 开发框架这部分也进行了改进, 统一了 StreamPark 中的开发 Flink 作业的参数配置, 重新规范了参数名, 使 StreamPark 的 Flink 开发框架部分的参数与 Apache Flink 参数名保持一致,大大提升了用户配置 Flink 参数的易用性, 从而减轻开发者的心智负担和使用学习成本。最新的 Flink 作业配置文件结构如下:
易用性改进
历史版本中 StreamPark 平台部分的元信息存储强依赖 MySQL, 本次扩展支持了三种数据库供用户选择: 分别是 H2, MySQL, PostgreSQL。默认使用H2, 对于想要快速体验的用户来说, 下载安装包, 执行启动脚本启动服务即可, 无需其他额外配置和操作就可以体验 StreamPark 了, 进一步降低了用户的体验门槛和使用成本。
本次新增了变量管理功能, 在没有变量之前在 StreamPark 里编写 Flink SQL 作业时会将连接器的相关信息, 如: 数据库的连接字符串、用户名、 密码等明文的写在 SQL 中, 不但容易出错, 作业多了混乱不方便管理, 而且还不安全。有了变量管理和填充功能之后: 在创建作业时可以使用定义好的变量进行填充,同时可以方便查看某个组件被哪些作业使用, 避免手动输入带来的错误。
除此之外, 本次还优化了很多其他方面关于易用性上的细节, 如: 提供了 Docker 方式一键部署启动 StreamPark, 支持了通过 copy 已有的作业来快速创建一个新的作业, 等等, 这些功能都不同程度的提升了 StreamPark 的易用性, 给用户带来更好的使用体验。
企业级支持
本次新增了团队管理,在没有团队管理之前,所有的作业都展示在一个页面,非常不便于作业的分类和管理,同时作业的权限也得不到保证。新增团队管理后,不同的团队之间资源隔离,团队成员只能看到本团队的作业,这样作业的管理和权限问题都得到了解决。
为了更好的和企业现有账号体系打通,本次新增了 LDAP 登录功能,只需要在系统的配置中进行 LDAP 相关的配置,然后在登录时选择通过 LDAP 登录即可。这样就可以快捷的一键登录 StreamPark 平台。
对于企业用户生产环境使用来讲,作业的稳定性至关重要,与之相关的预警机制是也是一个必须要考量的一个重要指标,本次告警通知方式新增支持了: 钉钉、企业微信、飞书、邮件 等方式。用户只需要配置一个告警组,在作业里指定告警组即可,做到了灵活配置和复用。
其他更新和改进
-
改进项目构建体验,记录上一次构建日志
-
支持了 Flink SQL 所有语法
-
开发框架部分支持 HOCON 配置文件
-
run-mode 支持 streaming 和 batch
-
修复 env.java.opts 参数不生效的 bug
-
修复支持 yarn 队列不生效的 bug
-
修复 on yarn 下 kerberos 认证相关的 bug
Release Note
https://streampark.apache.org/download/release-note/2.0.0
感谢贡献者
StreamPark 开源社区的发展,离不开广大用户群体的积极反馈和宣传布道,更离不开贡献者们的无私贡献,感谢对此版本做出贡献的每一位贡献者,致谢名单 (排名不分先后):
1996fanrui、Aimiyoo、Assert、BIN、Cheng Pan、ChenlingXie、ChunFu Wu、Daixinyu、Daniel Gruno、Gerry、Gilliam Su、GuoGuo、HaiYang Chen、Kerwin、Kick156、Kunni、KyleZhang0536、Leping Huang、Liebing、LiuHao、Monster、PJ Fanning、Rinka、Roc Marshal、Rui Fan、Ruibin Xing、Shaokang Lv、Shlpeng、Steam、Tamer、Tobe、Tyrantlucifer、VampireAchao、WHJian、WangSizhu0504、YuTing、Yuepeng.Pan、Yw Zhang、atovk、avatarTaier、benjobs、bitstring、boliza、boojack、bulolo、chuanchuan、dian、didiaode18、fanchp0、fanrui、fantasticKe、gongzhongqiang、hellowrold2022、huangzhuojun、jakevin、legendtkl、liuzhuang2017、lvlin241、lvshaokang、macksonmu、maruko、monrg、monster、mucj7、rafaelxie、sky-creater、sober、teeyog、tison、wangqingrong、wangrui、weijinglun、wellCh4n、wql、wzq246810、xujiangfeng001、xxyykkxx、yiwei、zhangxiangyang、zhu-mingye、zhuojun-huang、zhuzhihao94、ziqiang-wang、秋天、阿洋、小狐狸、木鱼和尚、第一片心意、芝麻仗剑走天涯
什么是 StreamPark
StreamPark 是一个流处理应用程序开发管理框架。初衷是让流处理更简单,旨在轻松构建和管理流处理应用程序,提供使用 Apache Flink 和 Apache Spark 编写流式处理应用程序的开发框架,未来将支持更多其他引擎。同时,StreamPark 提供了一个流处理应用开发管理平台,核心能力包括但不限于应用开发、调试、交互查询、部署、运维、实时数仓等,最初名为 StreamX,2022 年 8 月更名为 StreamPark,随后通过投票正式成为 Apache 开源软件基金会的孵化项目。
加入我们
进入 Apache 孵化器意味着 StreamPark 距离成为顶级的开源社区产品更近一步, 也是万里长征的第一步, 我们时刻保持开发者谦逊朴素的本质, 认真学习和遵循「The Apache Way」, 秉承更加兼容并包的心态, 迎接更多的机遇与挑战。诚挚欢迎更多的贡献者参与到社区建设中来。
项目地址:https://github.com/apache/incubator-streampark
提交问题和建议:https://github.com/apache/incubator-streampark/issues
贡献代码:https://github.com/apache/incubator-streampark/pulls
Proposal:https://cwiki.apache.org/confluence/display/INCUBATOR/StreamPark+Proposal
订阅社区开发邮件列表 : dev@streampark.apache.org
社区沟通: