当前位置: 首页 > news >正文

StreamPark + PiflowX 打造新一代大数据计算处理平台

🚀 什么是PiflowX

PiFlow 是一个基于分布式计算框架 Spark 开发的大数据流水线系统。该系统将数据的采集、清洗、计算、存储等各个环节封装成组件,以所见即所得方式进行流水线配置。简单易用,功能强大。它具有如下特性:

  1. 简单易用:可视化配置流水线,实时监控流水线运行状态,查看日志;

  2. 功能强大:提供 100 + 的数据处理组件, 包括 Hadoop 、Spark、MLlib、Hive、Solr、Redis、MemCache、ElasticSearch、JDBC、MongoDB、HTTP、FTP、XML、CSV、JSON 等,同时集成了微生物领域的相关算法;

  3. 扩展性强:支持自定义开发数据处理组件;

  4. 性能优越:基于分布式计算引擎 Spark 开发。

Piflow架构图:
在这里插入图片描述

在实时化的大趋势下,Flink 已经成为实时计算行业的事实标准。我们看到,不光是阿里巴巴,国内外各个领域的头部厂商,都把 Flink 做为实时计算的技术底座,国内有字节跳动、腾讯、华为,国外有 Netflix、Uber 等等。

为了流水线处理系统支持flink引擎,PiflowX应运而生,PiflowX基于Piflow二次开发(在此,向piflow作者和全体开发人员致敬!!!),对核心框架进行了重构,使算子组件接口抽象与计算引擎完全解耦,组件实现侧则完全由spark或flink API实现。采用这种架构虽然实现代价高,后期维护困难,但好处也是显而易见的,首先,组件完全由引擎自身API构成,天然可插拔,天然支持多版本。其次,可最大化和自由的使用引擎各自的特性,不会因为为了统一实现而不得不舍弃某些高级特性或功能。最后不会因为数据抽象和转换而造成性能损失,毕竟PilfowX是一款大数据处理系统!

下图是改造后spark和flink分别实现的组件算子模块。

在这里插入图片描述

PiflowX架构图:

在这里插入图片描述

任务侧添加了引擎类型(engineType)字段,这样便可识别底层实现组件。目前flink实现了大约40种组件,spark则是piflow原生实现的100+种组件。

在这里插入图片描述

flink类型任务:
在这里插入图片描述

spark类型任务:
在这里插入图片描述

PiflowX任务运行DEMO:

67bf2a930f51a536212ba5c442271bfb

在二开的过程中,也发现了piflow存在的一些问题:

  1. 由于piflow原生是基于spark的,现在增加了flink的实现,flink工作模式众多,因此任务运维这块工作量和难度都比较大!!!

  2. piflow webui美观度上还是欠缺一点(纯属个人意见,没有别的意思,望piflow各位开发者见谅),技术栈基于vue2,组件实现上代码量偏大。如果在原有基础上迁移到vue3和其他ui框架上,工作量无疑是个天文数字!!!

基于以上两点,便考虑在开源产品中寻找一款基于flink开发的产品,UI美观又大气的产品进行整合。不出意外的很轻松的找到了StreamPark

🚀 什么是StreamPark

实时即未来,在实时处理流域 Apache SparkApache Flink 是一个伟大的进步,尤其是 Apache Flink 被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink & Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验固化下来并结合业内的最佳实践, 通过不断努力诞生了今天的框架 —— StreamPark, 项目的初衷是 —— 让流处理更简单, 使用 StreamPark 开发流处理作业, 可以极大降低学习成本和开发门槛, 让开发者只用关心最核心的业务,StreamPark 规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式,提供了一系列开箱即用的Connectors,标准化了配置、开发、测试、部署、监控、运维的整个过程, 提供了scalajava两套 Api, 并且提供了一个一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都 做了支持, 是一个一站式的流处理计算平台.

简言之,Streampark是流处理极速开发框架,支持流批一体 & 湖仓一体的云原生平台,一站式流处理计算平台。
在这里插入图片描述

目前,PiflowX后端已全部整合到streampark-console-service模块,前端流水线相关功能也基本迁移。

在这里插入图片描述

以下是整合后的相关图片:

登录页

在这里插入图片描述

首页

在这里插入图片描述

流水线首页

在这里插入图片描述

创建flink类型任务

在这里插入图片描述

设计flink类型流水线

在这里插入图片描述

当然,纯flinksql组件算子已经实现,可以直接在节点上编写flinksql脚本

在这里插入图片描述
在这里插入图片描述

创建spark类型任务

在这里插入图片描述

设计spark类型流水线

在这里插入图片描述

目前整合进度刚刚开始,二者功能完全割裂,接下来,还需继续努力,争取早日实现无缝连接,完美糅合,打造新一代大数据计算处理平台!!!

参考资料:

cas-bigdatalab/piflow: πflow is a big data flow engine with spark support (github.com)

框架介绍 | Apache StreamPark (incubating)

Flink学习笔记(一):为什么选择flink_fink替代rabbitmq-CSDN博客

Flink 执行引擎:流批一体的融合之路 (baidu.com)

相关文章:

  • 软件测试错题集(黑盒、白盒测试)
  • wsl(ubuntu)创建用户
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • 终端上的GitHub Copilot以及IDE上的GitHub Copilot
  • MySQL之CRUD、常见函数及union查询
  • 一、初识Redis与分布式系统
  • 云计算复习笔记--期末
  • C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法
  • 【大数据】Zookeeper 客户端的命令行操作
  • fineBI web组件传参
  • MongoDB笔记
  • 使用 Docker Compose 部署 Docker Registry
  • Vue:Vue 3.4 新特性
  • 工业相机——输出图像格式 RAW、RGB、YUV
  • 本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 2017 年终总结 —— 在路上
  • Hexo+码云+git快速搭建免费的静态Blog
  • IDEA 插件开发入门教程
  • Mybatis初体验
  • PHP面试之三:MySQL数据库
  • PV统计优化设计
  • Python中eval与exec的使用及区别
  • Spring Boot MyBatis配置多种数据库
  • vuex 笔记整理
  • vue中实现单选
  • webgl (原生)基础入门指南【一】
  • 简单数学运算程序(不定期更新)
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 我与Jetbrains的这些年
  • 大数据全解:定义、价值及挑战
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​水经微图Web1.5.0版即将上线
  • #前后端分离# 头条发布系统
  • (175)FPGA门控时钟技术
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)nginx 配置(nginx.conf)
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (一)kafka实战——kafka源码编译启动
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • ... 是什么 ?... 有什么用处?
  • .net 8 发布了,试下微软最近强推的MAUI
  • @Autowired自动装配
  • @Controller和@RestController的区别?
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [CentOs7]图形界面
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [Excel] vlookup函数
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup
  • [Java算法分析与设计]--线性结构与顺序表(List)的实现应用
  • [Linux] - 定时任务crontab